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

Disassembly:
sub esp, 0x524
mov eax, dword [0x10a78b80]
xor eax, esp
mov dword [esp + 0x520], eax
mov eax, dword [esp + 0x530]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x52c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x534]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x538]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x53c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x540]
push ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x550]
push ebp
mov ebp, dword [esp + 0x530]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 0x10b0]
push esi
cmp byte [ebp + 0x3eba4], 0
push edi
mov edi, dword [eax]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x7c], 0xffffffff
mov dword [esp + 0x80], htons
movq qword [esp + 0x520], xmm0
mov dword [esp + 0x528], 0
mov byte [esp + 0x52c], 0
mov dword [esp + 0x58], 0
je 0x10140fc1
cmp byte [ebp + 0x3adab], 0
mov eax, dword [edi]
je 0x10140fc1
cmp byte [eax + 0x107986dc], 0x40
ja 0x10140fc1
cmp byte [eax + 0x107986f4], 0x40
ja 0x10140fc1
cmp eax, 3
jl 0x10140fc1
mov eax, dword [ecx + 0x3198]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x18], 1
jmp 0x10140fcf
xor eax, eax
mov dword [esp + 0x4c], 0
mov dword [esp + 0x18], eax
push dword [ecx + 0x10bc]
mov esi, dword [ecx + 0x10b8]
call fcn.100b88f0
push esi
mov bl, al
call fcn.100b88f0
movzx ecx, bl
add esp, 8
mov ebx, dword [esp + 0x50]
movzx eax, al
mov byte [edi + 0x50], 0
imul ecx, dword [ecx*4 + 0x10798c44], 0xd
add ecx, dword [eax*4 + 0x10798c44]
imul eax, ecx, 0x34
add eax, 0x35d8
add eax, ebx
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x5cf80]
test eax, eax
je 0x10141058
movaps xmm0, xmmword [0x107a4330]
lea ecx, [esp + 0x520]
push 0
push ecx
movups xmmword [esp + 0x64], xmm0
push ecx
movss xmm0, dword [esp + eax*4 + 0x64]
mov eax, dword [ebp + 0x3e7a8]
movss dword [esp], xmm0
push dword [eax + 0x1c]
push dword [esp + 0x24]
push ebx
call fcn.10144660
add esp, 0x18
push 1
push ebx
mov byte [edi + 0x53], 0
push ebp
mov byte [edi + 0x86], 0
call fcn.10144f50
movzx eax, byte [ebp + 0x5d038]
mov esi, edi
mov ecx, 0x29
lea edi, [esp + 0xe0]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebx + 0x1b5dc]
add esp, 0xc
mov edi, dword [eax*4 + 0x10799cc4]
test esi, esi
je 0x10141115
mov eax, dword [esp + 0x14]
movzx ecx, byte [eax + 0x107986f4]
movzx eax, byte [eax + 0x107986dc]
test edi, edi
jle 0x10141115
imul eax, ecx
add esi, 0xd0
mov ebx, eax
nop dword [eax + eax]
push 0xa4
lea eax, [esi - 0xd0]
push 0
push eax
call fcn.10513d40
xorps xmm0, xmm0
lea eax, [esi + 0x10]
movups xmmword [esi - 0x28], xmm0
push ebx
movups xmmword [esi - 0x18], xmm0
push 0
movups xmmword [esi - 8], xmm0
mov dword [esi + 8], 0
push eax
mov dword [esi + 0xc], 0
call fcn.10513d40
add esp, 0x18
mov byte [esi + 0x4010], 0
lea esi, [esi + 0x40e8]
sub edi, 1
jne 0x101410c0
mov ebx, dword [esp + 0x50]
mov ecx, 0xe8
mov dword [esp + 0x178], 0xffffffff
lea esi, [esp + 0x178]
mov dword [esp + 0x17c], htons
lea edi, [esp + 0x180]
mov dword [ebx + 0x1b5e0], 0
xor eax, eax
mov dword [esp + 0x84], 0xffffffff
mov dword [esp + 0x88], htons
mov dword [esp + 0x8c], 0xffffffff
mov dword [esp + 0x90], htons
mov dword [esp + 0x94], 0xffffffff
mov dword [esp + 0x98], htons
mov dword [esp + 0x9c], 0xffffffff
mov dword [esp + 0xa0], htons
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x2c], eax
nop dword [eax + eax]
mov esi, dword [ebp + 0x5cfb0]
mov edi, 6
cmp eax, 0xd
jae 0x101411d1
mov edi, dword [esp + 0x1c]
xor dl, dl
mov cl, byte [eax + 0x10797814]
mov byte [edi + 5], cl
jmp 0x101411f7
add eax, 0xfffffff3
cdq
idiv edi
mov edi, dword [esp + 0x1c]
lea ecx, [eax + 1]
mov byte [edi + 5], cl
test esi, esi
je 0x101411ed
mov dl, byte [edx + 0x1079780c]
jmp 0x101411f7
cmp edx, 3
setl al
add al, 2
sub dl, al
mov esi, dword [esp + 0x18]
movsx eax, dl
mov dword [esp + 0x20], eax
mov al, cl
sub al, 3
mov byte [edi + 0x50], dl
cmp al, 5
ja 0x1014121e
cmp byte [ebp + 0x3ee39], 0
mov dword [esp + 0x18], esi
je 0x101417ed
mov al, cl
dec al
cmp al, 7
ja 0x10141237
cmp byte [ebp + 0x3ee38], 0
mov dword [esp + 0x18], esi
je 0x101417ed
mov al, byte [ebp + 0x3ee35]
mov edx, esi
test al, al
je 0x1014124c
cmp dword [ebp + 0x5cf88], 0
je 0x10141287
cmp cl, 0xb
je 0x101417ed
cmp cl, 0xa
je 0x101417ed
test al, al
jne 0x1014126b
cmp cl, 9
je 0x101417ed
cmp dword [ebp + 0x5cf88], 0
je 0x10141287
cmp dword [ebp + 0x5cf90], 0
jne 0x10141287
cmp byte [edi + 5], 9
je 0x101417ed
cmp byte [ebp + 0x3ee36], 0
jne 0x1014129a
cmp byte [edi + 5], 0xc
je 0x101417ed
cmp dword [ebx + 0x1e430], 0
je 0x101412b5
mov ecx, dword [ebx + 0x1e434]
mov al, byte [edi + 5]
cmp al, byte [ecx + 5]
jne 0x101417ed
mov cl, byte [edi + 5]
mov edi, dword [esp + 0x14]
mov al, cl
dec al
mov byte [esp + 0x13], cl
cmp al, 7
ja 0x10141302
movzx eax, cl
mov esi, edx
mov dword [esp + 0x18], esi
cmp byte [esp + eax + 0x520], 0
jne 0x101417f1
cmp edi, 3
jl 0x101412f1
cmp byte [ebp + 0x3ee3a], 0
mov dword [esp + 0x18], esi
jne 0x10141302
cmp dword [esp + 0x20], 0
mov esi, edx
mov dword [esp + 0x18], esi
jne 0x101417f1
movzx edx, byte [edi + 0x10798830]
mov eax, 1
movzx ecx, cl
shl eax, cl
mov dword [esp + 0x5c], esi
test dword [ebp + edx*4 + 0x5cf54], eax
je 0x101417f1
cmp dword [ebp + 0x5cfb0], 0
lea eax, [ecx + ecx*8]
mov esi, dword [esp + 0x1c]
lea edi, [esp + 0x178]
lea edi, [edi + eax*8]
movsx esi, byte [esi + 0x50]
je 0x101413cd
mov al, byte [esp + 0x13]
dec al
cmp al, 7
ja 0x101413cd
mov ecx, dword [esp + 0x5c]
mov eax, esi
cdq
xor eax, edx
mov dword [esp + 0x18], ecx
sub eax, edx
test al, 1
je 0x101413cd
mov eax, dword [esp + 0x554]
mov edx, dword [esp + 0x558]
mov dword [esp + 0x18], ecx
cmp eax, 0xffffffff
jne 0x10141382
cmp edx, 0x7fffffff
je 0x101413cd
mov ecx, eax
mov eax, edx
shrd ecx, eax, 3
sar eax, 3
add ecx, dword [esp + 0x554]
adc eax, edx
cmp dword [edi + esi*8 + 0x1c], eax
jl 0x101413b9
jg 0x101413a4
cmp dword [edi + esi*8 + 0x18], ecx
jbe 0x101413b9
cmp dword [edi + esi*8 + 0x2c], eax
jl 0x101413b9
jg 0x101413b2
cmp dword [edi + esi*8 + 0x28], ecx
jbe 0x101413b9
mov eax, 1
jmp 0x101413bb
xor eax, eax
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x18], esi
test eax, eax
jne 0x101417ed
jmp 0x101413d1
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push 1
mov al, byte [edx + 0x10798830]
movzx ecx, al
cmp al, 3
mov eax, 3
cmova ecx, eax
lea eax, [ebp + 0x3abf0]
mov byte [esp + 0x7c], cl
push dword [esp + 0x7c]
push edx
push 0
push ebx
push eax
call fcn.10143e20
mov ecx, dword [ebp + 0x5cfa8]
mov edi, eax
add esp, 0x18
mov eax, edx
dec ecx
mov dword [esp + 0x24], eax
cmp dword [ebp + 0x5cfac], 0
je 0x1014149b
mov eax, dword [ebx + 0x10b0]
xor edx, edx
mov eax, dword [eax]
mov al, byte [eax + 5]
mov byte [esp + 0x13], al
xor eax, eax
mov dword [esp + 0x28], eax
cmp byte [ebx + 0x10b5], al
je 0x10141454
mov eax, dword [ebx + 0x10b8]
mov bl, byte [esp + 0x13]
cmp byte [eax + 5], bl
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x28]
setne dl
cmp byte [ebx + 0x10b4], 0
je 0x10141476
mov eax, dword [ebx + 0x10bc]
mov bl, byte [esp + 0x13]
cmp byte [eax + 5], bl
mov eax, 0
mov ebx, dword [esp + 0x50]
setne al
cmp dword [ebx + 0x31bc], 0x7f
jg 0x10141485
test edx, edx
jne 0x1014148d
jmp 0x10141489
test edx, edx
je 0x10141497
test eax, eax
je 0x10141497
lea eax, [ecx - 1]
xor ecx, ecx
test eax, eax
cmovg ecx, eax
mov eax, dword [esp + 0x24]
push ecx
push dword [ebp + 0x5cfa8]
lea ecx, [esp + 0x8c]
push ecx
lea ecx, [esp + 0x88]
push ecx
push eax
push edi
call fcn.10144740
add esp, 0x18
test eax, eax
jne 0x101417ed
push dword [esp + 0x558]
lea eax, [esp + 0xb0]
push dword [esp + 0x558]
push dword [esp + 0x1c]
push eax
push ebx
push ebp
call fcn.10220950
mov eax, dword [esp + 0xcc]
add esp, 0x18
mov edi, dword [esp + 0xac]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x28], eax
movzx eax, byte [esp + 0xcc]
mov dword [esp + 0x48], edi
mov dword [esp + 0x74], eax
cmp edi, 0x7fffffff
je 0x101417ed
mov esi, dword [esp + 0x1c]
movzx eax, byte [esi + 0x9f]
and eax, 7
cmp dword [ebx + eax*4 + 0x1b7c], 0
jne 0x10141559
cmp dword [esi], 0
jle 0x10141559
movzx eax, byte [esi + 0x89]
push eax
push dword [esp + 0x18]
push ebx
call fcn.10145570
add esp, 0xc
sub edi, eax
mov dword [esp + 0x48], edi
movzx eax, byte [esi + 5]
mov ecx, dword [esp + 0x44]
push 0
push dword [ecx + eax*4]
push dword [esp + 0x1c]
push esi
push ebx
push ebp
call fcn.10143b90
add eax, dword [esp + 0xc4]
add esp, 0x18
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x70], eax
imul dword [ebx + 0x31cc]
mov edi, eax
mov eax, dword [esp + 0x24]
add edi, 0x100
adc edx, 0
shld ecx, eax, 7
shrd edi, edx, 9
shl eax, 7
sar edx, 9
add edi, eax
mov dword [esp + 0x5c], edi
adc edx, ecx
cmp byte [ebp + 0x3eeb8], 2
mov dword [esp + 0x6c], edx
jne 0x10141605
cmp edi, 0xffffffff
jne 0x101415c9
cmp edx, 0x7fffffff
je 0x10141605
push dword [esp + 0x14]
push ebx
push ebp
call fcn.10144020
mov edx, dword [esp + 0x78]
add esp, 0xc
mov ecx, edi
call fcn.10511ed0
movsd qword [esp + 0x5c], xmm0
fmul qword [esp + 0x5c]
fstp qword [esp + 0x5c]
movsd xmm0, qword [esp + 0x5c]
call fcn.10511dd0
mov edi, eax
mov dword [esp + 0x6c], edx
mov dword [esp + 0x5c], edi
movzx eax, byte [esi + 5]
xor esi, esi
mov ecx, dword [esp + 0x20]
lea ecx, [ecx + eax*8]
add ecx, eax
mov eax, dword [ebx + 0x1b5dc]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + ecx*8 + 0x198], edi
mov dword [esp + ecx*8 + 0x19c], edx
movzx ecx, byte [ebp + 0x5d038]
mov al, byte [eax + 0x86]
mov byte [esp + 0x13], al
test ecx, ecx
je 0x1014173c
cmp edi, 0xffffffff
jne 0x1014165a
cmp edx, 0x7fffffff
je 0x1014173c
mov al, byte [ebp + 0x3abf0]
test al, al
je 0x1014167b
cmp al, 2
je 0x1014167b
cmp byte [esp + 0x13], 0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
ja 0x1014173c
mov eax, dword [ecx*4 + 0x10799cc4]
mov ecx, dword [ebx + 0x1b5e0]
mov dword [esp + 0x20], eax
test ecx, ecx
je 0x101416f6
xor esi, esi
test ecx, ecx
jle 0x101416b9
mov eax, dword [esp + 0x54]
add eax, 0xd0
nop
cmp dword [eax + 4], edx
jg 0x101416b5
jl 0x101416ab
cmp dword [eax], edi
ja 0x101416b5
inc esi
add eax, 0x40e8
cmp esi, ecx
jl 0x101416a0
mov eax, dword [esp + 0x20]
cmp esi, eax
je 0x1014173c
mov edi, dword [esp + 0x54]
dec eax
cmp esi, eax
jge 0x101416fa
mov eax, dword [esp + 0x20]
sub eax, esi
imul ecx, esi, 0x40e8
imul eax, eax, 0x40e8
add ecx, edi
sub eax, 0x40e8
push eax
push ecx
lea eax, [ecx + 0x40e8]
push eax
call fcn.105137c0
mov edx, dword [esp + 0x78]
add esp, 0xc
jmp 0x101416fa
mov edi, dword [esp + 0x54]
imul eax, esi, 0x40e8
mov ecx, 0x29
mov esi, dword [esp + 0x1c]
add eax, edi
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x20]
mov dword [eax + 0xd0], edi
mov dword [eax + 0xd4], edx
mov byte [eax + 0x40e0], 0
mov eax, dword [ebx + 0x1b5e0]
inc eax
cmp eax, ecx
cmovl ecx, eax
mov dword [ebx + 0x1b5e0], ecx
cmp edx, dword [esp + 0x558]
jg 0x101417e9
jl 0x10141758
cmp edi, dword [esp + 0x554]
jae 0x101417e9
mov esi, dword [esp + 0x1c]
lea edi, [esp + 0xd4]
mov eax, dword [esp + 0x5c]
mov ecx, 0x29
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x554], eax
mov eax, dword [esp + 0x70]
mov dword [ecx], eax
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x558], edx
mov dword [esp + 0x58], 1
mov dword [ecx], eax
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
mov dword [ecx], eax
mov eax, dword [esp + 0x28]
mov dword [ecx + 4], eax
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x74]
mov byte [ecx], al
lea eax, [ebx + 0x23b81]
push dword [esi + 0x144]
push eax
push dword [esi + 0x100]
call fcn.105137c0
push dword [esi + 0x144]
push dword [ebx + 0x10c8]
push dword [esi + 0x140]
call fcn.105137c0
add esp, 0x18
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x2c], eax
cmp eax, 0x3d
jl 0x101411b0
test esi, esi
mov esi, dword [esp + 0x30]
je 0x10141852
push dword [esi + 0x140]
lea eax, [esp + 0x5c]
push dword [esi + 0x100]
push esi
push eax
push dword [esp + 0x44]
lea eax, [esp + 0x568]
push dword [esp + 0x4c]
push dword [esp + 0x54]
push dword [esp + 0x5c]
push eax
push dword [esp + 0x70]
lea eax, [esp + 0xfc]
push eax
mov eax, dword [esp + 0x70]
push dword [eax]
push edi
push ebx
push ebp
call fcn.100c1df0
add esp, 0x3c
cmp dword [esp + 0x58], 0
je 0x10141da0
mov eax, dword [ebp + 0x3e7a8]
cmp byte [eax + 0x3c], 0
je 0x101418e3
cmp edi, 0xff
je 0x101418e3
cmp byte [edi + 0x107986dc], 0x20
ja 0x1014188a
cmp byte [edi + 0x107986f4], 0x20
ja 0x1014188a
mov eax, 1
jmp 0x1014188c
xor eax, eax
test eax, eax
je 0x101418e3
push esi
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x55c]
push eax
push dword [esp + 0xe5]
mov eax, dword [esp + 0x54]
push dword [eax]
push edi
push dword [esp + 0x4c]
push dword [esp + 0x54]
push dword [esp + 0x5c]
push dword [esp + 0x64]
push ebx
push ebp
call fcn.10144840
mov edx, dword [esp + 0x4c]
add esp, 0x30
test eax, eax
je 0x101418e7
mov ecx, 0x29
lea edi, [esp + 0xd4]
mov esi, edx
rep movsd dword es:[edi], dword [esi]
jmp 0x101418e7
mov edx, dword [esp + 0x1c]
cmp dword [esp + 0x58], 0
je 0x10141da0
cmp byte [ebp + 0x5d038], 0
je 0x10141cfd
mov esi, dword [esp + 0x14]
movzx ecx, byte [ebx + 0xf4]
mov edi, dword [ebx + 0x160]
mov dword [esp + 0x48], 0
movzx eax, byte [esi + 0x107986dc]
movzx esi, byte [esi + 0x107986f4]
shr eax, cl
movzx ecx, byte [ebx + 0xf8]
shr esi, cl
cmp dword [ebx + 0x1b5e0], 0
mov dword [esp + 0x24], edi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], esi
mov dword [esp + 0x5c], 0
jle 0x10141cc9
xor eax, eax
mov dword [esp + 0x20], eax
nop dword [eax + eax]
mov esi, dword [ebx + 0x1b5dc]
mov edi, edx
add esi, eax
mov ecx, 0x29
rep movsd dword es:[edi], dword [esi]
mov cl, byte [edx + 5]
mov eax, dword [ebp + 0x5d048]
mov dl, byte [edx + 0x88]
mov byte [esp + 0x13], cl
cmp eax, 1
jne 0x10141a00
mov eax, dword [ebx + 0x31bc]
mov ecx, 0x40
lea eax, [eax + eax*2]
shl eax, 4
cdq
and edx, 0xff
add eax, edx
sar eax, 8
sub ecx, eax
cmp dword [ebx + 0x243a4], ecx
jb 0x10141c97
mov cl, byte [esp + 0x13]
mov edx, dword [esp + 0x1c]
mov al, byte [edx + 0x9f]
test al, al
js 0x10141a71
cmp byte [edx + 0x14], 0
jg 0x10141a71
cmp dword [ebp + 0x5cfd4], 0
je 0x10141a8e
cmp byte [ebp + 0x3ee42], 0
jne 0x10141a8e
cmp byte [ebp + 0x3ee40], 0
jne 0x10141a8e
jmp 0x10141abd
cmp eax, 2
je 0x101419b8
cmp eax, 3
jne 0x10141a45
xor eax, eax
cmp dword [ebx + 0x31bc], 0x7f
jg 0x10141a1a
test dl, dl
setne al
cmp cl, 0x10
je 0x101419b8
cmp cl, 0x18
je 0x101419b8
cmp cl, 0x13
je 0x101419b8
cmp cl, 0x14
je 0x101419b8
cmp cl, 0x15
je 0x101419b8
cmp cl, 0x16
je 0x101419b8
test eax, eax
je 0x101419b8
jmp 0x10141c97
cmp eax, 4
jl 0x101419b8
cmp dword [ebp + 0x5d024], 5
jl 0x10141a64
cmp dword [ebx + 0x31bc], 0x46
jle 0x101419b8
test dl, dl
jne 0x10141c97
jmp 0x101419b8
sub cl, 0xd
cmp cl, 0xb
ja 0x10141a8e
cmp dword [ebp + 0x5cfd8], 0x7fffffff
je 0x10141a8e
cmp byte [ebp + 0x3ee41], 0
je 0x10141abd
cmp dword [ebp + 0x5d028], 0
je 0x10141ab0
movzx eax, byte [edx + 0x9f]
and eax, 7
mov al, byte [eax + ebp + 0x3eed8]
test al, al
je 0x10141ab0
cmp al, 2
jne 0x10141abd
cmp dword [ebp + 0x5d02c], 0
je 0x10141c9b
cmp byte [edx + 0x86], 0
jbe 0x10141aef
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
add ecx, 0xe0
push eax
mov eax, dword [ebx + 0x1b5dc]
add eax, ecx
push eax
push dword [esp + 0x2c]
call fcn.105137c0
add esp, 0xc
push 2
push ebx
push ebp
call fcn.10144f50
mov eax, dword [ebx + 0x10b0]
add esp, 0xc
cmp byte [ebp + 0x5d00d], 0
mov edi, dword [eax]
je 0x10141b1c
mov eax, dword [esp + 0x554]
mov ecx, dword [esp + 0x558]
jmp 0x10141b24
or eax, 0xffffffff
mov ecx, closesocket
push ecx
push eax
push dword [esp + 0x1c]
lea eax, [esp + 0x90]
push eax
push ebx
push ebp
call fcn.10220950
mov esi, dword [esp + 0x9c]
add esp, 0x18
mov dword [esp + 0x4c], esi
cmp esi, 0x7fffffff
je 0x10141c97
movzx eax, byte [edi + 0x9f]
and eax, 7
cmp dword [ebx + eax*4 + 0x1b7c], 0
jne 0x10141b87
cmp dword [edi], 0
jle 0x10141b87
movzx eax, byte [edi + 0x89]
push eax
push dword [esp + 0x18]
push ebx
call fcn.10145570
add esp, 0xc
sub esi, eax
mov dword [esp + 0x4c], esi
movzx eax, byte [edi + 5]
mov ecx, dword [esp + 0x44]
push 0
push dword [ecx + eax*4]
push dword [esp + 0x1c]
push edi
push ebx
push ebp
call fcn.10143b90
add eax, dword [esp + 0x9c]
add esp, 0x18
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x70], eax
imul dword [ebx + 0x31cc]
mov esi, eax
mov eax, dword [esp + 0x90]
add esi, 0x100
adc edx, 0
shld eax, ecx, 7
shrd esi, edx, 9
shl ecx, 7
sar edx, 9
add esi, ecx
mov dword [esp + 0x74], esi
adc edx, eax
cmp edx, dword [esp + 0x558]
jg 0x10141c97
jl 0x10141bff
cmp esi, dword [esp + 0x554]
jae 0x10141c97
mov eax, dword [esp + 0x74]
mov esi, edi
mov ecx, 0x29
lea edi, [esp + 0xd4]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x554], eax
mov eax, dword [esp + 0x70]
mov dword [ecx], eax
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x558], edx
mov dword [ecx], eax
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x8c]
mov dword [ecx], eax
mov eax, dword [esp + 0x90]
mov dword [ecx + 4], eax
mov ecx, dword [esp + 0x34]
mov al, byte [esp + 0xa4]
mov byte [ecx], al
lea eax, [ebx + 0x23b81]
push dword [esi + 0x144]
push eax
push dword [esi + 0x100]
call fcn.105137c0
push dword [esi + 0x144]
push dword [ebx + 0x10c8]
push dword [esi + 0x140]
call fcn.105137c0
mov eax, dword [esp + 0x74]
add esp, 0x18
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x20]
inc ecx
add eax, 0x40e8
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x20], eax
cmp ecx, dword [ebx + 0x1b5e0]
jl 0x10141960
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
cmp byte [esp + 0x15a], 0
jbe 0x10141d60
imul ecx, dword [esp + 0x48], 0x40e8
imul eax, esi
add ecx, 0xe0
push eax
mov eax, dword [ebx + 0x1b5dc]
add eax, ecx
push eax
push edi
call fcn.105137c0
add esp, 0xc
jmp 0x10141d60
push 0
push edx
push ebx
push ebp
call fcn.10144190
add esp, 0x10
test eax, eax
je 0x10141d60
push 2
push ebx
push ebp
call fcn.10144f50
mov eax, dword [esp + 0x3c]
lea esi, [esp + 0xe0]
push eax
mov edi, dword [esp + 0x2c]
lea eax, [esp + 0xe4]
push eax
push dword [esp + 0x48]
lea eax, [esp + 0x56c]
mov ecx, 0x29
push dword [esp + 0x50]
rep movsd dword es:[edi], dword [esi]
push dword [esp + 0x58]
push dword [esp + 0x60]
push eax
push dword [esp + 0x6c]
push dword [esp + 0x40]
push ebx
push ebp
call fcn.101437f0
add esp, 0x38
mov eax, dword [esp + 0x30]
lea esi, [esp + 0xd4]
mov edi, dword [esp + 0x1c]
mov ecx, 0x29
rep movsd dword es:[edi], dword [esi]
push dword [eax + 0x144]
push dword [eax + 0x140]
push dword [ebx + 0x10c8]
call fcn.105137c0
mov eax, dword [esp + 0x560]
add esp, 0xc
mov edx, dword [esp + 0x558]
jmp 0x10141da8
or eax, 0xffffffff
mov edx, closesocket
mov ecx, dword [esp + 0x530]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.105116c0
add esp, 0x524
ret