Function at 0x10103fe0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xe4
mov eax, dword [0x10a78b80]
xor eax, esp
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xf0]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x100]
push ebx
push ebp
mov dword [esp + 0x94], eax
push esi
mov esi, dword [esp + 0xf8]
push edi
mov dword [esp + 0x90], esi
mov dword [esp + 0x60], 0xffffffff
mov eax, dword [esi + 0xc]
mov ebp, dword [esi + 8]
mov dword [esp + 0x58], eax
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x70], eax
mov dword [esp + 0x7c], ebp
lea edx, [eax + 0xbb4]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x38], eax
mov eax, dword [edx]
mov dword [esp + 0x34], eax
lea eax, [esi + 0x64]
mov dword [esp + 0x88], eax
mov eax, 0xa
cmp ecx, eax
mov dword [esp + 0x94], edx
cmovl eax, ecx
mov ecx, dword [esi + 0x30]
mov eax, dword [eax*4 + 0x106c3560]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0xf8]
shr eax, 0x10
movsx edx, ax
cmp edx, ecx
jl 0x101040a7
cmp edx, dword [esi + 0x34]
mov ecx, edx
cmovg ecx, dword [esi + 0x34]
movsx edx, word [esp + 0xf8]
movzx edi, cx
mov ecx, dword [esi + 0x38]
mov eax, edi
mov dword [esp + 0x24], eax
mov word [esp + 0xfa], di
cmp edx, ecx
jl 0x101040d0
cmp edx, dword [esi + 0x3c]
mov ecx, edx
cmovg ecx, dword [esi + 0x3c]
movzx ebx, cx
movsx edx, bx
mov dword [esp + 0x28], edx
movsx edx, ax
movsx eax, di
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x48]
movsx ecx, bx
mov word [esp + 0xf8], bx
mov dword [esp + 0x80], ecx
test eax, eax
je 0x10104120
mov dword [eax + 0x10], closesocket
mov dword [eax + 0xc], closesocket
mov dword [eax + 8], closesocket
mov dword [eax + 4], closesocket
mov dword [eax], closesocket
mov eax, dword [ebp + 0x10]
push dword [esp + 0x38]
imul eax, ecx
mov dword [esp + 0x9c], 0
add eax, dword [ebp]
add eax, edx
push eax
mov eax, dword [esp + 0x60]
push dword [eax + 0x10]
push dword [eax]
mov eax, dword [esi + 0x84]
call eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x88], eax
lea eax, [esi + 0x64]
push eax
lea eax, [esp + 0x10c]
push eax
call fcn.10103760
mov ecx, dword [esp + 0x3c]
mov ebp, eax
mov eax, dword [esp + 0x94]
add esp, 0x18
add ebp, dword [esp + 0x5c]
mov dword [esp + 0x50], ebp
mov dword [esp + 0x74], ebp
mov edx, dword [eax + 0x10]
imul edx, dword [esp + 0x80]
add edx, dword [eax]
movsx eax, cx
add edx, eax
cmp dword [esp + 0x104], 0
mov dword [esp + 0x1c], edx
je 0x1010467a
xor edx, edx
or ecx, 0xffffffff
mov dword [esp + 0x14], ecx
mov dword [esp + 0x44], edx
cmp dword [esp + 0x84], edx
jl 0x101053b1
mov eax, ebx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x54], eax
mov ecx, 1
mov eax, edi
mov dword [esp + 0x58], ecx
mov dword [esp + 0x2c], eax
nop dword [eax + eax]
mov eax, dword [esp + 0x94]
mov ebp, ecx
neg ebp
mov dword [esp + 0x8c], 0xffffffff
xor ebx, ebx
mov eax, dword [eax + edx*4]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x18]
add eax, ecx
cmp eax, dword [esi + 0x34]
lea edi, [edx + ebp]
lea eax, [ecx + edx]
setle bl
xor ecx, ecx
cmp eax, dword [esi + 0x3c]
mov eax, dword [esp + 0x18]
setle cl
xor edx, edx
and ebx, ecx
cmp edi, dword [esi + 0x38]
cmovge edx, ebx
add eax, ebp
xor ecx, ecx
cmp eax, dword [esi + 0x30]
setge cl
test ecx, edx
je 0x101044da
mov eax, dword [esp + 0x64]
sar eax, 2
mov dword [esp + 0x64], eax
test eax, eax
jle 0x101043ac
xor ebp, ebp
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], ebp
mov dword [esp + 0x40], ebp
mov dword [esp + 0x10], ebp
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x2c]
add ecx, dword [esp + 0x6c]
mov edi, dword [esi + 8]
mov ebx, dword [eax]
mov edx, dword [eax + 0x10]
mov eax, dword [esp + 0x40]
mov eax, dword [eax + ecx + 4]
add eax, dword [esp + 0x1c]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x10]
mov eax, dword [ecx + eax + 0xc]
lea ecx, [ecx + ebp*8]
add eax, dword [esp + 0x1c]
mov dword [esp + 0xa4], eax
mov eax, dword [ecx + 0x14]
add eax, dword [esp + 0x1c]
mov dword [esp + 0xa8], eax
mov eax, dword [ecx + 0x1c]
add eax, dword [esp + 0x1c]
mov dword [esp + 0xac], eax
lea eax, [esp + 0xd0]
push eax
push dword [edi + 0x10]
lea eax, [esp + 0xa8]
mov dword [esp + 0x40], ecx
push eax
mov eax, dword [esi + 0x88]
push edx
push ebx
call eax
mov ebx, dword [esp + 0x64]
add esp, 0x14
mov esi, dword [esp + 0x38]
xor edi, edi
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x2c]
nop
movzx eax, word [esi]
mov ebp, dword [esp + edi*4 + 0xd0]
add ax, cx
mov word [esp + 0x68], ax
movzx eax, word [esi + 2]
add ax, dx
mov word [esp + 0x6a], ax
cmp ebp, ebx
jae 0x1010435a
push dword [esp + 0x88]
lea eax, [esp + 0x6c]
push eax
call fcn.10103760
mov edx, dword [esp + 0x34]
add eax, ebp
add esp, 8
cmp eax, ebx
jae 0x10104360
mov ecx, ebp
mov ebx, eax
mov ebp, dword [esp + 0x30]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x74], ebx
mov dword [ecx], eax
lea eax, [edi + ebp]
mov dword [esp + 0x8c], eax
jmp 0x10104364
mov ebp, dword [esp + 0x30]
jmp 0x10104368
mov ebp, dword [esp + 0x30]
mov ecx, dword [esp + 0x54]
inc edi
add esi, 8
cmp edi, 4
jl 0x101042f0
mov eax, dword [esp + 0x40]
add ebp, 4
sub dword [esp + 0x24], 1
mov esi, dword [esp + 0x90]
mov dword [esp + 0x50], ebx
lea eax, [eax + 0x20]
mov dword [esp + 0x30], ebp
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x10]
lea eax, [eax + 0x20]
mov dword [esp + 0x10], eax
jne 0x10104262
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x94]
mov edi, dword [ecx + edi*4]
and edi, reloc.WS2_32.dll_closesocket
jns 0x101043c7
dec edi
or edi, 0xfffffffc
inc edi
mov ecx, dword [esi + 0x2c]
mov ebp, dword [esp + 0x6c]
add ecx, ebp
mov edx, dword [esi + 0xc]
mov ebx, dword [esi + 8]
shl eax, 2
mov dword [esp + 0x38], edi
mov dword [esp + 0x40], edx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x10], eax
cmp eax, edi
jge 0x101045ed
mov ebp, dword [esp + 0x2c]
lea edi, [eax*8 + 4]
add edi, ecx
nop
mov ax, word [edi - 4]
add ax, word [esp + 0x54]
movzx ecx, ax
mov word [esp + 0x3c], ax
mov ax, word [edi - 2]
add ax, bp
mov word [esp + 0x3e], ax
cwde
cmp eax, dword [esi + 0x30]
jl 0x101044bf
cmp eax, dword [esi + 0x34]
jg 0x101044bf
movsx eax, cx
cmp eax, dword [esi + 0x38]
jl 0x101044bf
cmp eax, dword [esi + 0x3c]
jg 0x101044bf
push dword [ebx + 0x10]
mov eax, dword [edi]
add eax, dword [esp + 0x20]
push eax
push dword [edx + 0x10]
mov eax, dword [esi + 0x84]
push dword [edx]
call eax
mov ebx, dword [esp + 0x60]
mov ebp, eax
add esp, 0x10
cmp ebp, ebx
jae 0x101044b3
lea eax, [esi + 0x64]
push eax
lea eax, [esp + 0x40]
push eax
call fcn.10103760
mov edx, dword [esp + 0x48]
add eax, ebp
add esp, 8
cmp eax, ebx
jae 0x101044b7
mov ecx, ebp
mov ebx, eax
mov eax, dword [esp + 0x3c]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x50], ebx
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 0x30]
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x8c], eax
jmp 0x101044c3
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
inc eax
add edi, 8
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x38]
jl 0x10104400
jmp 0x101045e9
mov edi, dword [esi + 0x2c]
mov edx, dword [esi + 0xc]
add edi, 4
cmp dword [esp + 0x64], 0
mov ebx, dword [esi + 8]
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x40], edx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x10], 0
jle 0x1010460b
add edi, ebp
mov ebp, dword [esp + 0x2c]
nop dword [eax + eax]
mov ax, word [edi - 4]
add ax, word [esp + 0x54]
movzx ecx, ax
mov word [esp + 0x20], ax
mov ax, word [edi - 2]
add ax, bp
mov word [esp + 0x22], ax
cwde
cmp eax, dword [esi + 0x30]
jl 0x101045d3
cmp eax, dword [esi + 0x34]
jg 0x101045d3
movsx eax, cx
cmp eax, dword [esi + 0x38]
jl 0x101045d3
cmp eax, dword [esi + 0x3c]
jg 0x101045d3
push dword [ebx + 0x10]
mov eax, dword [edi]
add eax, dword [esp + 0x20]
push eax
push dword [edx + 0x10]
mov eax, dword [esi + 0x84]
push dword [edx]
call eax
mov ebx, dword [esp + 0x60]
mov ebp, eax
add esp, 0x10
cmp ebp, ebx
jae 0x101045c7
lea eax, [esi + 0x64]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.10103760
mov edx, dword [esp + 0x48]
add eax, ebp
add esp, 8
cmp eax, ebx
jae 0x101045cb
mov ecx, ebp
mov ebx, eax
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x50], ebx
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 0x30]
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x8c], eax
jmp 0x101045d7
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
inc eax
add edi, 8
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x64]
jl 0x10104510
mov ebp, dword [esp + 0x6c]
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x44]
cmp eax, 0xffffffff
je 0x1010460f
mov ebx, edx
mov edi, eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x60], edi
jmp 0x10104617
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x58]
inc edx
add ebp, 0x88
rol ecx, 1
mov dword [esp + 0x44], edx
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x58], ecx
cmp edx, dword [esp + 0x84]
jle 0x101041e0
cmp ebx, 0xffffffff
je 0x101053b1
mov ecx, dword [esp + 0x70]
mov eax, ebx
mov ebp, dword [esp + 0x50]
shl eax, 4
add eax, edi
add eax, ebx
lea ecx, [ecx + eax*8]
movsx eax, word [ecx]
add dword [esp + 0x28], eax
movsx eax, word [ecx + 2]
add dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
add eax, dword [ecx + 4]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
jmp 0x101046b2
mov ebx, dword [esp + 0x84]
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x60], 0xffffffff
mov dword [esp + 0x14], ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x38], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edx
cmp ebx, 0xffffffff
je 0x101053b5
cmp dword [esp + 0x34], 4
jne 0x101046c7
cmp dword [esp + 0x48], 0
je 0x101046c7
mov eax, 1
jmp 0x101046c9
xor eax, eax
or edx, 0xffffffff
mov dword [esp + 0x38], eax
mov dword [esp + 0x2c], edx
mov edi, ebx
mov dword [esp + 0x8c], edi
cmp ebx, eax
jl 0x10104f16
mov ecx, ebx
mov edi, 1
rol edi, cl
mov eax, ebx
shl eax, 4
shl ecx, 4
add eax, ebx
add ecx, ebx
mov dword [esp + 0x68], edi
shl eax, 3
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x40], ecx
mov ecx, edi
mov edi, ebx
lea eax, [eax + ebx*4]
mov dword [esp + 0x6c], eax
nop dword [eax + eax]
cmp dword [esp + 0x104], 0
je 0x10104732
cmp edi, ebx
je 0x10104ba1
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x18]
movzx eax, dx
mov dword [esp + 0x64], eax
movzx eax, bx
lea edi, [ecx + edx]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x6c]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
lea eax, [ecx + ebx]
xor ebx, ebx
cmp eax, dword [esi + 0x34]
mov eax, dword [esp + 0x18]
setle bl
sub edx, ecx
xor ecx, ecx
cmp edx, dword [esi + 0x38]
setge cl
xor edx, edx
and ebx, ecx
cmp edi, dword [esi + 0x3c]
cmovle edx, ebx
sub eax, dword [esp + 0x68]
xor ecx, ecx
cmp eax, dword [esi + 0x30]
setge cl
test ecx, edx
je 0x10104a53
mov eax, dword [esp + 0x30]
sar eax, 2
mov dword [esp + 0x30], eax
test eax, eax
jle 0x10104918
mov dword [esp + 0x44], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x3c], 0
nop dword [eax + eax]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x2c]
add ecx, dword [esp + 0x50]
mov edi, dword [esi + 8]
mov ebx, dword [eax]
mov edx, dword [eax + 0x10]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + ecx + 4]
add eax, dword [esp + 0x1c]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + ecx + 0xc]
add eax, dword [esp + 0x1c]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x44]
lea ecx, [ecx + eax*8]
mov eax, dword [ecx + 0x14]
add eax, dword [esp + 0x1c]
mov dword [esp + 0xb8], eax
mov eax, dword [ecx + 0x1c]
add eax, dword [esp + 0x1c]
mov dword [esp + 0xbc], eax
lea eax, [esp + 0xd0]
push eax
push dword [edi + 0x10]
lea eax, [esp + 0xb8]
mov dword [esp + 0x3c], ecx
push eax
mov eax, dword [esi + 0x88]
push edx
push ebx
call eax
mov ebx, dword [esp + 0x48]
add esp, 0x14
mov ecx, dword [esp + 0x64]
xor edi, edi
mov edx, dword [esp + 0x54]
nop dword [eax]
movzx eax, word [ebx]
add ax, cx
mov word [esp + 0x84], ax
movzx eax, word [ebx + 2]
add ax, dx
mov word [esp + 0x86], ax
cmp dword [esp + edi*4 + 0xd0], ebp
jae 0x101048ce
push dword [esp + 0x88]
lea eax, [esp + 0x88]
push eax
call fcn.10103760
mov ecx, dword [esp + edi*4 + 0xd8]
add esp, 8
mov edx, dword [esp + 0x54]
add eax, ecx
cmp eax, ebp
jae 0x101048d4
mov dword [esp + 0x5c], ecx
mov ebp, eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x74], ebp
mov dword [ecx], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
lea esi, [eax + edi]
mov dword [esp + 0x2c], esi
jmp 0x101048d8
mov eax, dword [esp + 0x44]
jmp 0x101048dc
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x64]
inc edi
add ebx, 8
cmp edi, 4
jl 0x10104850
mov esi, dword [esp + 0x90]
add eax, 4
sub dword [esp + 0x10], 1
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x20]
lea eax, [eax + 0x20]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x3c]
lea eax, [eax + 0x20]
mov dword [esp + 0x3c], eax
jne 0x101047c0
mov eax, dword [esp + 0x6c]
mov edx, dword [eax]
and edx, reloc.WS2_32.dll_closesocket
jns 0x1010492b
dec edx
or edx, 0xfffffffc
inc edx
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x2c]
add ecx, dword [esp + 0x50]
mov edi, dword [esi + 0xc]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x30]
shl eax, 2
mov dword [esp + 0x44], edx
mov dword [esp + 0x20], edi
mov dword [esp + 0x10], eax
cmp eax, edx
jge 0x10104b63
lea ebx, [eax*8 + 4]
add ebx, ecx
mov ecx, dword [esp + 0x14]
mov ax, word [ebx - 4]
add ax, word [esp + 0x64]
movzx edx, ax
mov word [esp + 0x80], ax
mov ax, word [ebx - 2]
add ax, word [esp + 0x54]
mov word [esp + 0x82], ax
cwde
mov dword [esp + 0x3c], ecx
cmp eax, dword [esi + 0x30]
jl 0x10104a34
cmp eax, dword [esi + 0x34]
jg 0x10104a34
movsx eax, dx
cmp eax, dword [esi + 0x38]
jl 0x10104a34
cmp eax, dword [esi + 0x3c]
jg 0x10104a34
mov eax, dword [ebx]
add eax, dword [esp + 0x1c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x34]
push dword [ecx + 0x10]
push eax
push dword [edi + 0x10]
mov eax, dword [esi + 0x84]
push dword [edi]
call eax
mov edi, eax
add esp, 0x10
cmp edi, ebp
jb 0x101049eb
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
jmp 0x10104a38
lea eax, [esi + 0x64]
push eax
lea eax, [esp + 0x84]
push eax
call fcn.10103760
add eax, edi
add esp, 8
cmp eax, ebp
jae 0x101049dd
mov ecx, edi
mov ebp, eax
mov eax, dword [esp + 0x80]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x74], ebp
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
jmp 0x10104a3c
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
inc eax
add ebx, 8
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x44]
jl 0x10104964
jmp 0x10104b63
mov ebx, dword [esi + 0x2c]
mov edi, dword [esi + 0xc]
add ebx, 4
cmp dword [esp + 0x30], 0
mov eax, dword [esi + 8]
mov dword [esp + 0x20], edi
mov dword [esp + 0x34], eax
mov dword [esp + 0x10], 0
jle 0x10104b63
add ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x14]
mov ax, word [ebx - 4]
add ax, word [esp + 0x64]
movzx edx, ax
mov word [esp + 0x7c], ax
mov ax, word [ebx - 2]
add ax, word [esp + 0x54]
mov word [esp + 0x7e], ax
cwde
mov dword [esp + 0x3c], ecx
cmp eax, dword [esi + 0x30]
jl 0x10104b49
cmp eax, dword [esi + 0x34]
jg 0x10104b49
movsx eax, dx
cmp eax, dword [esi + 0x38]
jl 0x10104b49
cmp eax, dword [esi + 0x3c]
jg 0x10104b49
mov eax, dword [ebx]
add eax, dword [esp + 0x1c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x34]
push dword [ecx + 0x10]
push eax
push dword [edi + 0x10]
mov eax, dword [esi + 0x84]
push dword [edi]
call eax
mov edi, eax
add esp, 0x10
cmp edi, ebp
jb 0x10104b03
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
jmp 0x10104b4d
lea eax, [esi + 0x64]
push eax
lea eax, [esp + 0x80]
push eax
call fcn.10103760
add eax, edi
add esp, 8
cmp eax, ebp
jae 0x10104af5
mov ecx, edi
mov ebp, eax
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x74], ebp
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
jmp 0x10104b51
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
inc eax
add ebx, 8
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x30]
jl 0x10104a82
mov edx, dword [esp + 0x2c]
cmp edx, 0xffffffff
je 0x10104ed3
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x70]
add eax, edx
mov dword [esp + 0x60], edx
lea ecx, [ecx + eax*8]
movsx eax, word [ecx]
add dword [esp + 0x28], eax
movsx eax, word [ecx + 2]
add dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
add eax, dword [ecx + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x6c]
jmp 0x10104ba5
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x8c]
mov ebx, 1
mov edi, eax
shl ebx, cl
mov dword [esp + 0x64], edi
mov dword [esp + 0x3c], ebx
nop dword [eax]
mov dword [esp + 0x2c], 0xffffffff
test edx, edx
jne 0x10104bd8
mov dword [esp + 0x64], eax
mov eax, dword [eax]
mov ecx, eax
mov edx, eax
jmp 0x10104bdc
mov ecx, dword [edi]
mov eax, edx
shl eax, 3
mov dword [esp + 0x34], eax
lea eax, [edx - 1]
mov edx, dword [esp + 0x60]
mov dword [esp + 0xa0], eax
lea eax, [ecx - 1]
mov dword [esp + 0xa4], edx
cmp edx, eax
jne 0x10104c0b
xor eax, eax
mov dword [esp + 0x20], 4
jmp 0x10104c19
lea ecx, [edx*8 + 0xc]
lea eax, [edx + 1]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x28]
mov edi, ecx
mov edx, dword [esp + 0x18]
sub edi, ebx
mov dword [esp + 0xa8], eax
movzx eax, cx
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x44], eax
lea eax, [edx + ebx]
xor ebx, ebx
cmp eax, dword [esi + 0x34]
mov eax, dword [esp + 0x3c]
setle bl
add eax, ecx
xor ecx, ecx
cmp eax, dword [esi + 0x3c]
mov eax, dword [esp + 0x18]
setle cl
xor edx, edx
and ebx, ecx
cmp edi, dword [esi + 0x38]
cmovge edx, ebx
sub eax, dword [esp + 0x3c]
xor ecx, ecx
cmp eax, dword [esi + 0x30]
setge cl
test ecx, edx
je 0x10104d7a
mov ebx, dword [esp + 0x50]
add ebx, dword [esi + 0x2c]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x54], ebx
mov eax, dword [ebx + eax - 4]
add eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [ebx + edx*8 + 4]
add eax, ecx
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + ebx]
add eax, ecx
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xc8], eax
lea eax, [esp + 0xe0]
push eax
mov eax, dword [esi + 8]
push dword [eax + 0x10]
lea eax, [esp + 0xc8]
push eax
mov eax, dword [esp + 0x50]
push dword [eax + 0x10]
push dword [eax]
mov eax, dword [esi + 0x8c]
call eax
mov esi, dword [esp + 0x44]
add esp, 0x14
mov edx, dword [esp + 0x18]
xor edi, edi
mov eax, dword [esp + edi*4 + 0xa0]
lea ecx, [ebx + eax*8]
mov ebx, dword [esp + edi*4 + 0xe0]
movzx eax, word [ecx]
add ax, si
mov word [esp + 0x58], ax
movzx eax, word [ecx + 2]
movzx ecx, dx
add ax, cx
mov word [esp + 0x5a], ax
cmp ebx, ebp
jae 0x10104d64
push dword [esp + 0x88]
lea eax, [esp + 0x5c]
push eax
call fcn.10103760
mov edx, dword [esp + 0x20]
add eax, ebx
add esp, 8
cmp eax, ebp
jae 0x10104d64
mov ecx, ebx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x5c], ecx
mov ebp, eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x74], ebp
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
mov ebx, dword [esp + 0x54]
inc edi
cmp edi, 3
jl 0x10104cf1
mov esi, dword [esp + 0x90]
jmp 0x10104e87
mov ecx, dword [esi + 0x2c]
mov eax, dword [esi + 8]
add ecx, dword [esp + 0x50]
xor ebx, ebx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
nop dword [eax]
nop word [eax + eax]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x20], eax
mov eax, dword [esp + ebx*4 + 0xa0]
movzx edx, si
mov esi, dword [esp + 0x90]
lea edi, [ecx + eax*8]
mov ax, word [edi + 2]
mov cx, word [edi]
add ax, dx
add cx, word [esp + 0x30]
movzx edx, ax
mov word [esp + 0x26], ax
cwde
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x20]
mov word [esp + 0x24], cx
cmp eax, dword [esi + 0x30]
jl 0x10104e75
mov eax, dword [esp + 0x34]
cwde
cmp eax, dword [esi + 0x34]
jg 0x10104e75
movsx eax, cx
cmp eax, dword [esi + 0x38]
jl 0x10104e75
movzx eax, cx
cwde
cmp eax, dword [esi + 0x3c]
jg 0x10104e75
mov ecx, dword [esp + 0x54]
mov eax, dword [edi + 4]
add eax, dword [esp + 0x1c]
mov dword [esp + 0x14], edx
push dword [ecx + 0x10]
push eax
mov eax, dword [esp + 0x4c]
push dword [eax + 0x10]
push dword [eax]
mov eax, dword [esi + 0x84]
call eax
mov edi, eax
add esp, 0x10
cmp edi, ebp
jb 0x10104e40
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
jmp 0x10104e79
lea eax, [esi + 0x64]
push eax
lea eax, [esp + 0x28]
push eax
call fcn.10103760
add eax, edi
add esp, 8
cmp eax, ebp
jae 0x10104e36
mov ecx, edi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x5c], ecx
mov ebp, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x74], ebp
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
inc ebx
cmp ebx, 3
jl 0x10104da0
mov edx, dword [esp + 0x2c]
cmp edx, 0xffffffff
je 0x10104ed3
mov edx, dword [esp + edx*4 + 0xa0]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x70]
add eax, edx
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x60], edx
lea ecx, [ecx + eax*8]
movsx eax, word [ecx]
add dword [esp + 0x28], eax
movsx eax, word [ecx + 2]
add dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
add eax, dword [ecx + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x6c]
jmp 0x10104bc0
mov edi, dword [esp + 0x8c]
mov eax, dword [esp + 0x6c]
dec edi
mov ecx, dword [esp + 0x68]
sub eax, 4
sub dword [esp + 0x50], 0x88
sub dword [esp + 0x40], 0x11
mov ebx, dword [esp + 0x14]
ror ecx, 1
mov dword [esp + 0x8c], edi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], ecx
cmp edi, dword [esp + 0x38]
jge 0x10104720
mov ecx, dword [esp + 0x28]
test edi, edi
jne 0x101053b5
cmp dword [esp + 0x104], 0
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x98], 1
mov dword [edi], eax
je 0x10104f45
test ebx, ebx
je 0x10105031
mov ecx, dword [esp + 0x28]
xor ebx, ebx
mov eax, dword [esp + 0x18]
push dword [esp + 0x48]
mov word [esp + 0x2a], ax
inc eax
cmp eax, dword [esi + 0x34]
lea edi, [ecx + 1]
lea eax, [ecx - 1]
mov word [esp + 0x28], cx
setle bl
xor ecx, ecx
cmp eax, dword [esi + 0x38]
mov eax, dword [esp + 0x1c]
setge cl
xor edx, edx
and ebx, ecx
cmp edi, dword [esi + 0x3c]
push 0
cmovle edx, ebx
mov ebx, dword [esp + 0x24]
dec eax
xor ecx, ecx
cmp eax, dword [esi + 0x30]
lea eax, [esp + 0x34]
setge cl
test ecx, edx
je 0x10104fc2
push eax
push 0
lea eax, [esp + 0x88]
push eax
lea eax, [esp + 0x88]
push eax
push ebx
push dword [esp + 0x40]
lea eax, [esi + 0x64]
push dword [esp + 0x6c]
push eax
push esi
call fcn.10101700
add esp, 0x2c
jmp 0x10104fed
push 4
push eax
push 0
lea eax, [esp + 0x8c]
push eax
lea eax, [esp + 0x8c]
push eax
push ebx
push dword [esp + 0x44]
lea eax, [esi + 0x64]
push dword [esp + 0x70]
push eax
push esi
call fcn.10101850
add esp, 0x30
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
cmp edx, 0xffffffff
je 0x101053b5
mov edi, dword [esp + 0x70]
mov ebp, dword [esp + 0x74]
movsx eax, word [edi + edx*8]
add ecx, eax
movsx eax, word [edi + edx*8 + 2]
add dword [esp + 0x18], eax
add ebx, dword [edi + edx*8 + 4]
mov edi, edx
mov eax, dword [esp + 0x78]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x60], edi
mov dword [esp + 0x5c], eax
jmp 0x10105035
mov edi, dword [esp + 0x60]
cmp edx, 0xffffffff
je 0x101053b5
mov edx, dword [esp + 0x28]
or eax, 0xffffffff
mov dword [esp + 0x7c], eax
test edi, edi
jne 0x1010505a
mov eax, dword [esp + 0x94]
mov eax, dword [eax]
mov ecx, eax
jmp 0x1010505e
mov eax, edi
mov ecx, edi
mov ebx, dword [esp + 0x48]
shl eax, 3
mov dword [esp + 0x34], eax
lea eax, [ecx - 1]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0xa4], edi
mov eax, dword [eax]
dec eax
cmp edi, eax
jne 0x1010509b
xor eax, eax
mov dword [esp + 0x38], 4
mov dword [esp + 0x80], ebx
jmp 0x101050b6
lea ecx, [edi*8 + 0xc]
mov dword [esp + 0x38], ecx
lea eax, [edi + 1]
lea ecx, [ebx + 4]
lea ecx, [ecx + edi*4]
mov dword [esp + 0x80], ecx
lea ecx, [edi + 2]
mov dword [esp + 0xa8], eax
mov dword [ebx + 0x10], closesocket
mov dword [ebx + 0xc], closesocket
mov dword [ebx + 8], closesocket
mov dword [ebx + 4], closesocket
and ecx, reloc.WS2_32.dll_closesocket
jns 0x101050e9
dec ecx
or ecx, 0xfffffffc
inc ecx
mov eax, dword [ebx]
lea edi, [edx - 1]
mov dword [ebx + ecx*4 + 4], eax
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x18]
mov dword [ebx], eax
xor ebx, ebx
movzx eax, dx
mov dword [esp + 0x68], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x84], eax
lea eax, [ecx + 1]
cmp eax, dword [esi + 0x34]
lea eax, [edx + 1]
setle bl
xor ecx, ecx
cmp eax, dword [esi + 0x3c]
setle cl
xor edx, edx
and ebx, ecx
cmp edi, dword [esi + 0x38]
cmovge edx, ebx
mov ebx, dword [esp + 0x18]
xor ecx, ecx
lea eax, [ebx - 1]
cmp eax, dword [esi + 0x30]
setge cl
test ecx, edx
je 0x1010526d
mov ecx, dword [esi + 0x2c]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
mov eax, dword [ecx + eax - 4]
add eax, edx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x60]
mov eax, dword [ecx + eax*8 + 4]
add eax, edx
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax + ecx]
add eax, edx
mov dword [esp + 0xcc], edx
mov dword [esp + 0xc8], eax
lea eax, [esp + 0xb0]
push eax
mov eax, dword [esi + 8]
push dword [eax + 0x10]
lea eax, [esp + 0xc8]
push eax
mov eax, dword [esp + 0x90]
push dword [eax + 0x10]
push dword [eax]
mov eax, dword [esi + 0x8c]
call eax
mov esi, dword [esp + 0x34]
add esp, 0x14
mov edx, dword [esp + 0x68]
xor edi, edi
nop
mov eax, dword [esp + edi*4 + 0xa0]
lea ecx, [esi + eax*8]
movzx eax, word [ecx]
add ax, dx
mov word [esp + 0x24], ax
movzx eax, word [ecx + 2]
movzx ecx, bx
mov ebx, dword [esp + edi*4 + 0xb0]
add ax, cx
mov word [esp + 0x26], ax
cmp ebx, ebp
jae 0x10105221
push dword [esp + 0x88]
lea eax, [esp + 0x28]
push eax
call fcn.10103760
mov edx, dword [esp + 0x70]
add eax, ebx
add esp, 8
cmp eax, ebp
jae 0x10105221
mov ecx, dword [esp + 0x4c]
mov ebp, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x7c], edi
mov dword [ecx], eax
mov ebx, dword [esp + 0x18]
inc edi
cmp edi, 3
jl 0x101051c0
mov ecx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x90]
mov dword [ebx + ecx*4 + 4], eax
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0xb4]
mov dword [ebx + edx*4 + 4], eax
mov eax, dword [esp + 0xb8]
mov dword [ecx + 4], eax
jmp 0x10105371
mov eax, dword [esi + 8]
xor edi, edi
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x80], eax
mov edx, dword [esp + edi*4 + 0xa0]
mov esi, dword [esp + 0x18]
lea ebx, [eax + edx*8]
mov ax, word [ebx + 2]
mov cx, word [ebx]
add cx, word [esp + 0x68]
movzx edx, si
mov esi, dword [esp + 0x90]
add ax, dx
movzx edx, ax
mov word [esp + 0x5a], ax
cwde
mov dword [esp + 0x34], edx
mov edx, dword [esp + edi*4 + 0xa0]
mov word [esp + 0x58], cx
cmp eax, dword [esi + 0x30]
jl 0x10105354
mov eax, dword [esp + 0x34]
cwde
cmp eax, dword [esi + 0x34]
jg 0x10105354
movsx eax, cx
cmp eax, dword [esi + 0x38]
jl 0x10105354
movzx eax, cx
cwde
cmp eax, dword [esi + 0x3c]
jg 0x10105354
mov ecx, dword [esp + 0x38]
mov eax, dword [ebx + 4]
add eax, dword [esp + 0x1c]
push dword [ecx + 0x10]
push eax
mov eax, dword [esp + 0x8c]
push dword [eax + 0x10]
push dword [eax]
mov eax, dword [esi + 0x84]
call eax
mov ecx, dword [esp + 0x58]
mov ebx, eax
mov eax, dword [esp + edi*4 + 0xb0]
add esp, 0x10
mov dword [ecx + eax*4 + 4], ebx
cmp ebx, ebp
jae 0x10105360
lea eax, [esi + 0x64]
push eax
lea eax, [esp + 0x5c]
push eax
call fcn.10103760
add eax, ebx
add esp, 8
cmp eax, ebp
jae 0x10105360
mov ecx, dword [esp + 0x4c]
mov ebp, eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x7c], edi
mov dword [ecx], eax
jmp 0x10105360
mov eax, dword [esp + 0x48]
mov dword [eax + edx*4 + 4], closesocket
mov eax, dword [esp + 0x80]
inc edi
cmp edi, 3
jl 0x10105280
mov eax, dword [esp + 0x7c]
cmp eax, 0xffffffff
je 0x101053b1
mov edi, dword [esp + eax*4 + 0xa0]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x60], edi
movsx eax, word [ecx + edi*8]
add edx, eax
movsx eax, word [ecx + edi*8 + 2]
add dword [esp + 0x18], eax
add ebx, dword [ecx + edi*8 + 4]
mov dword [esp + 0x28], edx
mov dword [esp + 0x1c], ebx
jmp 0x10105042
mov ecx, dword [esp + 0x28]
cmp dword [esp + 0x48], 0
mov eax, dword [esp + 0x4c]
mov word [eax], cx
mov ecx, dword [esp + 0x18]
mov word [eax + 2], cx
je 0x101056bc
mov eax, dword [eax]
mov ebp, dword [esi + 8]
mov edx, dword [esi + 0xc]
movzx ecx, ax
mov dword [esp + 0x7c], eax
mov ebx, dword [ebp + 0x10]
shr eax, 0x10
cmp dword [esp + 0x98], 0
mov edi, eax
movsx esi, cx
cwde
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x90]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x70], edi
mov dword [esp + 0x58], edx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x38], eax
jne 0x1010556d
mov edi, dword [esp + 0x4c]
movsx ecx, cx
imul ecx, ebx
push ebx
mov eax, dword [edi]
shr eax, 0x10
cwde
add ecx, eax
mov eax, dword [esi + 0x84]
add ecx, dword [ebp]
push ecx
push dword [edx + 0x10]
push dword [edx]
call eax
mov ecx, dword [esp + 0x58]
xor ebx, ebx
add esp, 0x10
mov dword [ecx], eax
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
inc eax
cmp eax, dword [esi + 0x34]
lea eax, [ecx + 1]
setle bl
lea edi, [ecx - 1]
xor ecx, ecx
cmp eax, dword [esi + 0x3c]
mov eax, dword [esp + 0x38]
setle cl
xor edx, edx
and ebx, ecx
cmp edi, dword [esi + 0x38]
cmovge edx, ebx
dec eax
xor ecx, ecx
cmp eax, dword [esi + 0x30]
setge cl
test ecx, edx
je 0x101054e4
mov ebx, dword [esp + 0x48]
mov edi, 0x106c324e
add ebx, 4
nop dword [eax]
movzx eax, word [edi - 2]
mov edx, dword [esp + 0x88]
push dword [esp + 0x24]
movzx ecx, dx
add ax, cx
movsx ecx, ax
imul ecx, dword [ebp + 0x10]
movzx eax, word [edi]
add ax, word [esp + 0x74]
cwde
add ecx, eax
mov eax, dword [esp + 0x5c]
add ecx, dword [ebp]
push ecx
push dword [eax + 0x10]
push dword [eax]
mov eax, dword [esi + 0x84]
call eax
add edi, 4
mov dword [ebx], eax
add esp, 0x10
lea ebx, [ebx + 4]
cmp edi, 0x106c325e
jl 0x10105490
jmp 0x10105569
mov ebx, dword [esp + 0x24]
xor edi, edi
nop word [eax + eax]
mov edx, dword [esp + 0x88]
movzx eax, word [edi + 0x106c324c]
movzx ecx, dx
add ax, cx
movzx edx, ax
movzx eax, word [edi + 0x106c324e]
add ax, word [esp + 0x70]
movzx eax, ax
movsx ecx, ax
cmp ecx, dword [esi + 0x30]
jl 0x10105554
cmp ecx, dword [esi + 0x34]
jg 0x10105554
movsx eax, dx
cmp eax, dword [esi + 0x38]
jl 0x10105554
cmp eax, dword [esi + 0x3c]
jg 0x10105554
movsx eax, dx
imul eax, dword [ebp + 0x10]
push ebx
add eax, ecx
add eax, dword [ebp]
push eax
mov eax, dword [esp + 0x60]
push dword [eax + 0x10]
push dword [eax]
mov eax, dword [esi + 0x84]
call eax
add esp, 0x10
jmp 0x10105559
mov eax, closesocket
mov ecx, dword [esp + 0x48]
mov dword [ecx + edi + 4], eax
add edi, 4
cmp edi, 0x10
jl 0x101054f0
mov edi, dword [esp + 0x70]
lea eax, [esi + 0x64]
mov esi, eax
lea eax, [esp + 0x7c]
push esi
push eax
call fcn.10103760
mov edx, dword [esp + 0x50]
mov ecx, 0x106c324e
add esp, 8
mov dword [esp + 0x24], ecx
add dword [edx], eax
lea ebx, [edx + 4]
mov dword [esp + 0x98], ebx
nop dword [eax]
cmp dword [ebx], 0x7fffffff
je 0x10105690
mov ebp, dword [esp + 0x88]
movzx eax, word [ecx - 2]
movzx edx, bp
add ax, dx
movzx ebp, ax
movzx eax, word [ecx]
sub bp, word [esi + 4]
add ax, di
movzx edx, ax
sub dx, word [esi + 6]
movzx eax, byte [esi + 8]
shl bp, 3
shl dx, 3
cmp eax, 4
ja case.0x101055e6.4
jmp dword [eax*4 + 0x101056e8]
xor ebx, ebx
mov ecx, 2
test dx, dx
movsx edx, dx
setne bl
xor eax, eax
test bp, bp
cmovne eax, ecx
mov ecx, dword [esi + 0xc]
or ebx, eax
mov eax, dword [esi + 0x14]
mov edi, dword [ecx + ebx*4]
add edi, dword [eax + edx*4]
mov eax, dword [esi + 0x10]
mov ebx, dword [esp + 0x98]
movsx ecx, bp
add edi, dword [eax + ecx*4]
imul edi, dword [esi + 0x1c]
mov ecx, dword [esp + 0x24]
add edi, 0x100
shr edi, 9
jmp 0x1010568e
movsx eax, dx
cdq
mov edi, eax
movsx eax, bp
xor edi, edx
sub edi, edx
cdq
xor eax, edx
sub eax, edx
add edi, eax
shl edi, 5
sar edi, 3
jmp 0x1010568e
movsx eax, dx
cdq
mov ecx, eax
movsx eax, bp
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
add ecx, eax
mov edi, ecx
shl edi, 4
sub edi, ecx
mov ecx, dword [esp + 0x24]
sar edi, 3
jmp 0x1010568e
movsx eax, dx
cdq
mov edi, eax
movsx eax, bp
xor edi, edx
sub edi, edx
cdq
xor eax, edx
sub eax, edx
add edi, eax
jmp 0x1010568e
xor edi, edi
add dword [ebx], edi
mov edi, dword [esp + 0x70]
add ecx, 4
add ebx, 4
mov dword [esp + 0x24], ecx
mov dword [esp + 0x98], ebx
cmp ecx, 0x106c325e
jl 0x101055a0
mov esi, dword [esp + 0x90]
mov eax, dword [esp + 0x4c]
push dword [esp + 0x9c]
push eax
push esi
call fcn.10103530
mov ecx, dword [esp + 0xfc]
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.105116c0
add esp, 0xe4
ret