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

Disassembly:
mov eax, 0x5520
call fcn.10512080
mov eax, dword [0x10a78b80]
xor eax, esp
mov dword [esp + 0x551c], eax
mov eax, dword [esp + 0x5528]
xor ecx, ecx
push ebx
push ebp
mov ebp, dword [esp + 0x5534]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x553c]
push esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x5544]
push edi
mov edi, dword [esp + 0x5534]
mov ebx, dword [esp + 0x5540]
mov dword [esp + 0x44], eax
mov dword [esp + 0x78], ebp
lea eax, [edi + 0x3abf0]
mov dword [esp + 0x20], edi
mov dword [esp + 0x40], eax
mov eax, dword [eax + 0x3bb8]
mov dword [esp + 0x54], ebx
cmp byte [eax + 0x4d], cl
lea eax, [edi + 0x5ccb8]
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x10b0]
sete cl
mov esi, dword [eax]
lea ecx, [ecx*2 + 1]
mov dword [esp + 0xb0], ecx
lea ecx, [ebp + 0xe0]
push ecx
mov dword [esp + 0x20], esi
call fcn.100bc4e0
push dword [esp + 0x5554]
push dword [esp + 0x5554]
lea eax, [eax*8 + 0x6fb8]
push dword [esp + 0x20]
add eax, ebp
push ebp
mov dword [esp + 0xd8], eax
lea eax, [esp + 0x1f5c]
push edi
push eax
call fcn.1016a970
xorps xmm0, xmm0
mov dword [esp + 0x5540], 0x4040404
movq qword [esp + 0x1d0], xmm0
lea eax, [esp + 0x272c]
movaps xmm0, xmmword [0x108136d0]
mov dword [esp + 0x208], eax
lea eax, [esp + 0x39ec]
movups xmmword [esp + 0x1d8], xmm0
mov dword [esp + 0x214], eax
lea eax, [esp + 0x5540]
xorps xmm0, xmm0
mov dword [esp + 0x220], eax
movq qword [esp + 0x1e8], xmm0
lea eax, [esp + 0x24c]
movaps xmm0, xmmword [0x108136c0]
push 0x13d8
movups xmmword [esp + 0x1f4], xmm0
mov dword [esp + 0x5548], 0x4040404
xorps xmm0, xmm0
mov dword [esp + 0x1d0], 0
push 0
push eax
mov dword [esp + 0x20c], 0
mov dword [esp + 0x210], 0
mov dword [esp + 0x218], htons
mov dword [esp + 0x21c], htons
mov dword [esp + 0x224], 0
mov byte [esp + 0x228], 0
mov dword [esp + 0x230], 0
mov dword [esp + 0x234], 0
mov dword [esp + 0x238], 0
mov word [esp + 0x23c], 0
mov byte [esp + 0x23e], 0
mov dword [esp + 0x240], 0
movlpd qword [esp + 0x248], xmm0
mov dword [esp + 0x250], 0
call fcn.10513d40
xorps xmm0, xmm0
xor eax, eax
mov byte [esp + 0x1640], 0
push 0x70
push eax
mov word [esp + 0x1649], ax
mov byte [esp + 0x164b], al
mov dword [esp + 0x1660], eax
lea eax, [esp + 0x1664]
movups xmmword [esp + 0x1638], xmm0
push eax
movaps xmm0, xmmword [0x108137e0]
movups xmmword [esp + 0x1650], xmm0
mov dword [esp + 0x1660], 0xffffffff
call fcn.10513d40
xorps xmm0, xmm0
mov dword [esp + 0x16d8], 0
add esp, 0x34
movq qword [esp + 0x16b8], xmm0
cmp byte [edi + 0x5cd38], 2
movups xmmword [esp + 0x16a8], xmm0
mov dword [esp + 0x16c0], 0
mov dword [esp + 0x16c4], 0xffffffff
jne 0x101639ea
cmp dword [edi + 0x5d0bc], 0
je 0x101639ea
cmp dword [edi + 0x5d150], 0
je 0x101639ea
push dword [esp + 0x14]
mov eax, dword [edi + 0x3e7a8]
lea esi, [ebp + 0x17b50]
mov edx, dword [ebp + 0xe4]
mov ecx, dword [ebp + 0xe0]
push edx
cmp dword [eax + 0x1c], 0xc
push ecx
push esi
jne 0x101639d5
call fcn.101570f0
mov esi, dword [esp + 0x2c]
add esp, 0x10
mov dword [esp + 0xa4], eax
jmp 0x101639f5
call fcn.10156fa0
mov esi, dword [esp + 0x2c]
add esp, 0x10
mov dword [esp + 0xa4], eax
jmp 0x101639f5
mov dword [esp + 0xa4], 0
mov eax, dword [edi + 0x5d03c]
movaps xmm0, xmmword [0x107a4350]
mov dword [ebp + 0x243b8], closesocket
mov dword [ebp + 0x243bc], closesocket
mov eax, dword [eax*4 + 0x10812af8]
mov dword [ebp + 0x243c0], closesocket
mov dword [ebp + 0x243c4], closesocket
mov dword [ebp + 0x243c8], closesocket
mov dword [ebp + 0x243cc], closesocket
mov dword [ebp + 0x243d0], closesocket
mov dword [ebp + 0x243d4], closesocket
mov dword [ebx], closesocket
mov dword [ebx + 8], 0xffffffff
mov dword [ebx + 0xc], closesocket
mov dword [ebx + 0x10], 0xffffffff
mov dword [ebx + 0x14], closesocket
mov dword [ebx + 0x18], 0xffffffff
mov dword [ebx + 0x1c], closesocket
mov dword [esp + 0xb4], eax
xor eax, eax
mov byte [ebx + 0x20], al
mov dword [ebx + 4], eax
xor ebx, ebx
mov dword [ebp + 0x14d90], 0xffffffff
mov dword [ebp + 0x14e14], 0xffffffff
mov dword [ebp + 0x14e98], 0xffffffff
mov dword [ebp + 0x14f1c], 0xffffffff
mov dword [ebp + 0x14fa0], 0xffffffff
mov dword [ebp + 0x15024], 0xffffffff
mov dword [ebp + 0x150a8], 0xffffffff
mov dword [ebp + 0x1512c], 0xffffffff
mov ecx, dword [edi + 0x5ce8c]
mov dword [esp + 0x16a0], 0xffffffff
mov dword [esp + 0xb8], eax
mov dword [esp + 0x1f40], eax
mov dword [esp + 0x18c0], 0xffffffff
mov dword [esp + 0x18c4], 0x7fffffff
mov dword [esp + 0x1978], 0xffffffff
mov dword [esp + 0x197c], 0x7fffffff
mov dword [esp + 0x1a30], 0xffffffff
mov dword [esp + 0x1a34], 0x7fffffff
mov dword [esp + 0x1ae8], 0xffffffff
mov dword [esp + 0x1aec], 0x7fffffff
mov dword [esp + 0x1ba0], 0xffffffff
mov dword [esp + 0x1ba4], 0x7fffffff
mov dword [esp + 0x1c58], 0xffffffff
mov dword [esp + 0x1c5c], 0x7fffffff
mov dword [esp + 0x1d10], 0xffffffff
mov dword [esp + 0x1d14], 0x7fffffff
mov dword [esp + 0x1dc8], 0xffffffff
mov dword [esp + 0x1dcc], 0x7fffffff
mov dword [esp + 0x1e80], 0xffffffff
mov dword [esp + 0x1e84], 0x7fffffff
mov dword [esp + 0x1f38], 0xffffffff
mov dword [esp + 0x1f3c], 0x7fffffff
movups xmmword [esp + 0x1630], xmm0
movups xmmword [esp + 0x1640], xmm0
movups xmmword [esp + 0x1650], xmm0
movups xmmword [esp + 0x1660], xmm0
movups xmmword [esp + 0x1670], xmm0
movups xmmword [esp + 0x1680], xmm0
movups xmmword [esp + 0x1690], xmm0
test ecx, ecx
je 0x10163cb5
mov al, byte [esi + 4]
test al, al
je 0x10163cb5
cmp al, 2
je 0x10163c38
cmp al, 1
jne 0x10163c3d
cmp ecx, 2
jl 0x10163cb5
mov eax, dword [esp + 0x40]
xor ebx, ebx
mov edi, dword [ebp + 0xe4]
mov eax, dword [eax + 0x3bb8]
mov eax, dword [eax + 0x20]
dec eax
mov ecx, eax
and edi, eax
mov eax, dword [esp + 0x14]
and ecx, dword [ebp + 0xe0]
movzx esi, byte [eax + 0x10808244]
movzx edx, byte [eax + 0x1080822c]
mov dword [esp + 0x2c], edx
lea eax, [ecx + esi]
cmp ecx, eax
jge 0x10163cb1
shl ecx, 5
lea eax, [edx + edi]
add ecx, edi
lea edx, [ebp + 0x151b0]
mov ebp, dword [esp + 0x2c]
lea edx, [edx + ecx*4]
nop
cmp edi, eax
jge 0x10163ca5
mov eax, edx
mov ecx, ebp
or ebx, dword [eax]
lea eax, [eax + 4]
sub ecx, 1
jne 0x10163c98
lea eax, [edi + ebp]
sub edx, 0xffffff80
sub esi, 1
jne 0x10163c90
mov ebp, dword [esp + 0x78]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
mov eax, ebx
not eax
neg ebx
sbb ebx, ebx
and ebx, eax
lea eax, [esp + 0x5244]
push eax
lea eax, [esp + 0x5428]
mov dword [esp + 0x60], ebx
push eax
lea eax, [esp + 0x522c]
push eax
push ebx
lea eax, [esp + 0x17b8]
push eax
push esi
lea eax, [esp + 0x1c8]
push eax
push ebp
push edi
call fcn.101700f0
mov eax, dword [edi + 0x5ce6c]
lea edx, [edi + 0x5ccb8]
add esp, 0x24
mov dword [esp + 0xd0], 0xffffffff
mov dword [esp + 0xd4], htons
cmp eax, 1
jne 0x10163fbf
mov ecx, dword [esp + 0x94]
imul eax, esi, 0x70
cmp dword [eax + ecx + 0x5330], 0
jne 0x10163fd5
mov dword [esp + 0x7c], 1
mov eax, dword [ebp + 0x1b5e8]
mov dword [esp + 0xc8], eax
mov dword [esp + 0x51e4], 0xffffffff
mov dword [esp + 0x51e8], 0x7fffffff
mov dword [eax], 0
mov eax, dword [ebp + 0x10e8]
mov esi, dword [ebp + 0x31b4]
mov ecx, esi
shr ecx, 1
mov dword [esp + 0x51ec], 0xffffffff
test byte [eax + 0x8c], 8
mov eax, dword [ebp + 0xe0]
cmovne esi, ecx
mov dword [esp + 0xa8], eax
cmp dword [edx + 0x24c], 0
mov eax, dword [ebp + 0xe4]
mov dword [esp + 0xcc], esi
mov dword [esp + 0x51f0], 0x7fffffff
mov dword [esp + 0x51f4], 0xffffffff
mov dword [esp + 0x51f8], 0x7fffffff
mov dword [esp + 0x51fc], 0xffffffff
mov dword [esp + 0x5200], 0x7fffffff
mov dword [esp + 0x5204], 0xffffffff
mov dword [esp + 0x5208], 0x7fffffff
mov dword [esp + 0x520c], 0xffffffff
mov dword [esp + 0x5210], 0x7fffffff
mov dword [esp + 0x5214], 0xffffffff
mov dword [esp + 0x5218], 0x7fffffff
mov dword [esp + 0x521c], 0xffffffff
mov dword [esp + 0x5220], 0x7fffffff
mov dword [esp + 0x50], 0xffffffff
mov dword [esp + 0x70], 0xffffffff
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x48], 0xffffffff
mov dword [esp + 0xac], eax
je 0x1016405a
mov ebx, dword [esp + 0x20]
lea ecx, [ebp + 0x14d89]
mov al, 1
mov byte [esp + 0x25], 0xff
lea edx, [esp + 0x51c8]
mov byte [esp + 0x13], al
mov dword [esp + 0x38], ecx
mov dword [esp + 0x68], edx
nop word [eax + eax]
cmp byte [ecx], 0
mov byte [esp + 0x24], al
jne 0x10163fea
mov edi, dword [ebx + 0x3acc8]
mov esi, dword [ebx + 0x5ce88]
add edi, 0x28
test esi, esi
je 0x10163fea
cmp esi, 2
jl 0x10163fea
cmp byte [ebp + 0x14d8b], 0
mov dword [esp + 0x8c], 3
mov dword [esp + 0x90], 2
jne 0x10163efa
mov eax, dword [ebp + 0x14d2c]
cmp eax, dword [ebp + 0x14d40]
jne 0x10163f05
mov dword [esp + 0x8c], 0xffffffff
cmp byte [ebp + 0x14d8a], 0
jne 0x10163f1c
mov eax, dword [ebp + 0x14d28]
cmp eax, dword [ebp + 0x14d40]
jne 0x10163f27
mov dword [esp + 0x90], 0xffffffff
lea eax, [esp + 0x8c]
push eax
push dword [edi + 0xc]
lea eax, [esp + 0x2c]
push edi
push eax
call fcn.10160af0
add esp, 0x10
test eax, eax
jne 0x10163fb3
cmp esi, 3
jl 0x10163fe2
mov dword [esp + 0x2c], 6
mov dword [esp + 0x30], 5
cmp byte [ebp + 0x14d8e], al
jne 0x10163f73
mov eax, dword [ebp + 0x14d38]
cmp eax, dword [ebp + 0x14d40]
jne 0x10163f7b
mov dword [esp + 0x2c], 0xffffffff
cmp byte [ebp + 0x14d8d], 0
jne 0x10163f92
mov eax, dword [ebp + 0x14d34]
cmp eax, dword [ebp + 0x14d40]
jne 0x10163f9a
mov dword [esp + 0x30], 0xffffffff
lea eax, [esp + 0x2c]
push eax
push dword [edi]
lea eax, [esp + 0x2c]
push edi
push eax
call fcn.10160af0
add esp, 0x10
test eax, eax
je 0x10163fe2
mov ecx, dword [esp + 0x38]
xor eax, eax
mov edx, dword [esp + 0x68]
jmp 0x10163fef
cmp eax, 2
jne 0x10163d3e
cmp byte [esi + 0x108082a4], 8
jbe 0x10163d3e
mov dword [esp + 0x7c], 0
jmp 0x10163d46
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x38]
mov eax, 1
mov dword [edx], eax
inc ecx
mov al, byte [esp + 0x13]
add edx, 4
inc al
mov dword [esp + 0x38], ecx
mov byte [esp + 0x13], al
mov dword [esp + 0x68], edx
cmp al, 8
jl 0x10163ea0
push 0x40
lea eax, [esp + 0x176c]
push 0
push eax
call fcn.10513d40
lea eax, [esp + 0x1774]
mov edi, ebx
push eax
lea eax, [esp + 0x51d8]
push eax
push dword [esp + 0xc0]
push dword [esp + 0xc0]
push dword [esp + 0x30]
push edi
call fcn.10168710
mov ebx, dword [esp + 0x80]
lea edx, [edi + 0x5ccb8]
add esp, 0x24
mov ecx, dword [edi + 0x3ac24]
mov eax, dword [edi + 0x3ac20]
cmp eax, ecx
cmovge eax, ecx
cmp eax, 0x1e0
jle 0x1016407f
cmp dword [edi + 0x5ccb4], 1
jle 0x101643fb
cmp dword [edx + 0x2c4], 0
je 0x101643fb
cmp byte [edi + 0x3eac1], 0
je 0x101643fb
mov eax, dword [edi + 0x3e7a8]
xor edx, edx
mov edi, dword [eax + 0x1c]
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
movzx esi, byte [eax + 0xcb55]
lea eax, [ebp + 0x141f8]
mov dword [esp + 0x80], eax
movzx eax, byte [edi + 0x10808274]
div esi
xor edx, edx
mov ecx, eax
movzx eax, byte [edi + 0x1080825c]
div esi
imul ecx, eax
cmp dword [ebp + 0x14200], ecx
jne 0x101643fb
add esi, 0xfffffffc
cmp esi, 0x3c
ja case.0x101640f2.5
movzx eax, byte [esi + 0x10165474]
jmp dword [eax*4 + 0x1016545c]
mov al, byte [0x10808238]
mov cl, byte [0x10808250]
jmp 0x10164138
mov al, byte [0x10808235]
mov cl, byte [0x1080824d]
jmp 0x10164138
mov al, byte [0x1080822f]
mov cl, byte [0x10808247]
jmp 0x10164138
mov al, byte [0x1080822c]
mov cl, byte [0x10808244]
jmp 0x10164138
mov cl, byte [0x1080824a]
mov al, byte [0x10808232]
mov edx, dword [ebp + 0x14d08]
movzx esi, al
mov eax, dword [esp + 0x14]
mov dword [esp + 0x88], edx
xor edx, edx
mov dword [esp + 0x60], esi
movzx ecx, cl
movzx eax, byte [eax + 0x1080822c]
div esi
xor edx, edx
mov dword [esp + 0x64], ecx
mov esi, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x58], esi
movzx eax, byte [eax + 0x10808244]
div ecx
mov dword [esp + 0x2c], eax
cmp esi, 1
jl 0x101643fb
cmp eax, 1
jl 0x101643fb
mov eax, dword [esp + 0xa8]
movzx ecx, byte [edi + 0x10808244]
cdq
idiv ecx
movzx ecx, byte [edi + 0x1080822c]
mov eax, edx
mov ebp, dword [esp + 0x88]
cdq
idiv dword [esp + 0x64]
mov ebx, eax
mov eax, dword [esp + 0xac]
cdq
idiv ecx
mov ecx, dword [esp + 0x2c]
mov eax, edx
imul ebx, ebp
cdq
idiv dword [esp + 0x60]
mov dword [esp + 0x64], ecx
add ebx, eax
lea eax, [ebp*8]
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x74], ebx
lea eax, [ebp + 0x210]
lea eax, [eax + ebx*8]
mov dword [esp + 0x60], eax
jmp 0x10164204
mov esi, dword [esp + 0x58]
mov dword [esp + 0xa0], 0
xorps xmm0, xmm0
movlpd qword [esp + 0x98], xmm0
mov edi, dword [esp + 0x9c]
mov ebx, dword [esp + 0x98]
movlpd qword [esp + 0xbc], xmm0
movlpd qword [esp + 0x68], xmm0
movlpd qword [esp + 0x51c8], xmm0
cmp esi, 2
jl 0x101642f5
mov ebp, dword [esp + 0xc0]
lea ecx, [esi - 2]
mov esi, dword [esp + 0x51c8]
shr ecx, 1
inc ecx
mov dword [esp + 0x24], ebp
lea edx, [ecx + ecx]
mov dword [esp + 0xa0], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x51cc]
nop
mov ebp, dword [esp + 0x68]
add ebp, dword [eax - 0x200]
mov dword [esp + 0x68], ebp
mov ebp, dword [esp + 0x24]
adc ebp, dword [eax - 0x1fc]
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x38]
add ebp, dword [eax]
mov dword [esp + 0x38], ebp
mov ebp, dword [esp + 0x3c]
adc ebp, dword [eax + 4]
add ebx, dword [eax - 0x1f8]
mov dword [esp + 0x3c], ebp
adc edi, dword [eax - 0x1f4]
add esi, dword [eax + 8]
adc edx, dword [eax + 0xc]
lea eax, [eax + 0x10]
sub ecx, 1
jne 0x10164290
mov eax, dword [esp + 0xa0]
mov ebp, dword [esp + 0x80]
cmp eax, dword [esp + 0x58]
jge 0x1016436a
jmp 0x10164330
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x51cc]
mov esi, dword [esp + 0x51c8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x24], ecx
add eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x50]
add ecx, dword [ebp + eax*8 + 0x10]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x70]
adc ecx, dword [ebp + eax*8 + 0x14]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x4c]
add ecx, dword [ebp + eax*8 + 0x210]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x48]
adc ecx, dword [ebp + eax*8 + 0x214]
mov dword [esp + 0x48], ecx
add ebx, dword [esp + 0x68]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x60]
adc edi, ecx
add dword [esp + 0x50], ebx
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x88]
adc ebx, edi
add esi, dword [esp + 0x38]
mov dword [esp + 0x70], ebx
adc edx, dword [esp + 0x3c]
add dword [esp + 0x4c], esi
adc dword [esp + 0x48], edx
add eax, dword [esp + 0x8c]
add dword [esp + 0x74], ecx
sub dword [esp + 0x64], 1
mov dword [esp + 0x60], eax
jne 0x10164200
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x58]
cdq
mov esi, edx
mov edi, eax
push esi
push edi
push ebx
push dword [esp + 0x5c]
call fcn.10511aa0
push esi
push edi
push dword [esp + 0x50]
mov dword [esp + 0x5c], eax
push dword [esp + 0x58]
mov dword [esp + 0x80], edx
call fcn.10511aa0
mov ebp, dword [esp + 0x78]
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x34]
mov esi, dword [ebp + 0x1b5dc]
movzx ecx, byte [eax + 0x380]
mov edi, dword [ecx*4 + 0x1081366c]
test esi, esi
je 0x10164495
mov eax, dword [esp + 0x14]
movzx ecx, byte [eax + 0x10808274]
movzx eax, byte [eax + 0x1080825c]
test edi, edi
jle 0x10164495
imul eax, ecx
add esi, 0xd0
mov ebx, eax
nop dword [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 0x10164440
mov ebx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x1c]
mov eax, dword [ebp + 0x1b5dc]
mov dword [ebp + 0x1b5e0], 0
movzx edx, byte [ecx + 0x380]
mov ch, byte [esi + 0x86]
test edx, edx
je 0x10164537
cmp dword [esp + 0x554c], 0xffffffff
jne 0x101644d9
cmp dword [esp + 0x5550], 0x7fffffff
je 0x10164537
mov edi, dword [esp + 0x20]
mov cl, byte [edi + 0x3abf0]
test cl, cl
je 0x101644f0
cmp cl, 2
je 0x101644f0
test ch, ch
jne 0x10164537
mov edx, dword [edx*4 + 0x1081366c]
mov edi, eax
mov ecx, 0x29
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x554c]
mov esi, dword [esp + 0x1c]
mov dword [eax + 0xd0], ecx
mov ecx, dword [esp + 0x5550]
mov dword [eax + 0xd4], ecx
mov byte [eax + 0x40e0], 0xff
mov eax, dword [ebp + 0x1b5e0]
inc eax
cmp eax, edx
cmovge eax, edx
mov dword [ebp + 0x1b5e0], eax
mov ecx, dword [esp + 0x34]
mov eax, 0x1000
cmp dword [ecx + 0x1cc], 0
je 0x10164556
mov eax, dword [ebp + 0x31bc]
mov eax, dword [eax*4 + 0x10808b08]
lea ecx, [esp + 0x1fc]
mov dword [esp + 0xec], eax
mov dword [esp + 0xd8], ecx
xor edx, edx
lea ecx, [esp + 0x17a8]
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xdc], ecx
mov eax, 0x1c
lea ecx, [esp + 0x1f48]
mov dword [esp + 0xe8], 0
mov dword [esp + 0xe0], ecx
mov edi, 0x9c
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xf4], edx
mov dword [esp + 0x80], 0xffffffff
mov dword [esp + 0x84], htons
cmp byte [ecx + 1], dl
cmovne eax, edi
mov byte [esp + 0x74], al
xor al, al
mov byte [esp + 0x13], al
nop word [eax + eax]
movzx eax, al
mov al, byte [eax + 0x10808f08]
mov byte [esp + 0x2b], al
movzx eax, al
lea ecx, [eax*2 + 0x10813470]
add ecx, eax
mov bh, byte [ecx + 1]
mov al, byte [ecx]
mov bl, byte [ecx + 2]
mov byte [esp + 0x1b], al
mov byte [esp + 0x24], bl
test bh, bh
jle 0x10164619
cmp bl, 0xff
jne 0x10164619
mov edi, 1
jmp 0x1016461b
xor edi, edi
and byte [esi + 0x9f], 0xcf
mov byte [esi + 5], al
mov byte [esi + 6], 0
mov al, byte [ecx + 1]
mov byte [esi + 0x14], al
mov al, byte [ecx + 2]
mov byte [esi + 0x15], al
mov eax, dword [esp + 0x40]
mov word [esi + 0x86], 0
mov byte [esi + 0x53], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov byte [esi + 0x1c], 0
mov byte [esi + 0x44], 0xff
mov eax, dword [eax + 0x1c8]
cmp eax, 4
movzx ecx, ax
mov dword [esp + 0x8c], 0
cmove ecx, dword [esp + 0x8c]
add edx, edi
movzx eax, cx
mov ecx, eax
mov dword [esp + 0x2c], edi
shl ecx, 0x10
or ecx, eax
mov dword [esp + 0xf0], edx
mov dword [esi + 0x18], ecx
mov byte [ebp + 0x23b80], 0
cmp bh, 1
jl 0x10164793
mov al, bh
mov cl, bh
dec al
cmp al, 7
jbe 0x10164795
mov edx, dword [esp + 0x40]
xor eax, eax
mov dword [ebp + 0x10e0], eax
cmp bl, 1
jl 0x101647bb
mov al, bl
mov cl, bl
dec al
cmp al, 7
jbe 0x101647bd
xor eax, eax
push dword [esp + 0xa4]
mov dword [ebp + 0x10e4], eax
lea eax, [esp + 0xdc]
push eax
movzx eax, byte [esp + 0x1b]
push eax
lea eax, [esp + 0x51f0]
push eax
push dword [esp + 0x24]
push ebp
push dword [esp + 0x38]
call fcn.10170da0
add esp, 0x1c
test eax, eax
jne 0x10164f83
movsx ecx, bh
lea edx, [esp + 0x5244]
mov eax, ecx
shl eax, 4
sub eax, ecx
lea edx, [edx + eax*4]
test bl, bl
jle 0x101647df
mov edi, dword [esp + 0xb0]
lea esi, [ebp + 0x124]
movsx ecx, bl
mov eax, ecx
shl eax, 4
sub eax, ecx
lea ecx, [esp + 0x5244]
lea ecx, [ecx + eax*4]
mov eax, dword [edx + 0x10]
lea edx, [edx + 0x14]
lea ecx, [ecx + 0x14]
lea esi, [esi + 0x538]
movups xmm0, xmmword [edx - 0x14]
movups xmmword [esi - 0x54c], xmm0
mov dword [esi - 0x53c], eax
mov eax, dword [ecx - 4]
movups xmm0, xmmword [ecx - 0x14]
movups xmmword [esi - 0x538], xmm0
mov dword [esi - 0x528], eax
sub edi, 1
jne 0x10164751
mov edi, dword [esp + 0x2c]
jmp 0x10164812
mov cl, 1
mov edx, dword [esp + 0x40]
movzx eax, cl
mov eax, dword [edx + eax*4 + 0xd8]
cmp eax, 0xffffffff
je 0x101646b7
shl eax, 4
add eax, 0x10c
add eax, edx
jmp 0x101646b9
mov cl, 1
movzx eax, cl
mov eax, dword [edx + eax*4 + 0xd8]
cmp eax, 0xffffffff
je 0x101646d6
shl eax, 4
add eax, 0x10c
add eax, edx
jmp 0x101646d8
mov esi, dword [esp + 0xb0]
lea ecx, [ebp + 0x110]
nop dword [eax]
mov eax, dword [edx + 0x10]
lea edx, [edx + 0x14]
lea ecx, [ecx + 0x538]
movups xmm0, xmmword [edx - 0x14]
movups xmmword [ecx - 0x538], xmm0
mov dword [ecx - 0x528], eax
sub esi, 1
jne 0x101647f0
mov edx, dword [esp + 0x1c]
xorps xmm0, xmm0
mov dword [esp + 0x16c8], 0
movlpd qword [esp + 0x16d0], xmm0
movlpd qword [esp + 0x16d8], xmm0
mov word [edx + 0x50], 0
and byte [edx + 0x9f], 0xcf
mov byte [edx + 0x53], 0
movlpd qword [esp + 0x16e0], xmm0
mov byte [esp + 0x16e8], 1
mov dword [esp + 0x16cc], 0
movsx ecx, bh
test bl, bl
jle 0x10164879
movsx eax, bl
lea eax, [eax + ecx*8]
mov esi, dword [esp + eax*4 + 0x5424]
jmp 0x10164880
mov esi, dword [esp + ecx*4 + 0x5224]
mov eax, dword [edx]
mov bl, byte [eax + 0x10808274]
mov al, byte [eax + 0x1080825c]
cmp al, bl
movzx ecx, bl
movzx edx, al
cmovae edx, ecx
cmp edx, 8
jb 0x101648b8
xor eax, eax
mov ecx, 4
cmp byte [esp + 0x24], al
cmovg eax, ecx
mov ecx, dword [esp + 0xc4]
mov ecx, dword [eax + ecx]
jmp 0x101648ba
xor ecx, ecx
mov edx, dword [esp + 0x40]
lea eax, [esp + 0x25f0]
mov dword [esp + 0x1e0], eax
lea eax, [esp + 0x2650]
mov dword [esp + 0x1e4], eax
lea eax, [esp + 0x26b0]
mov dword [esp + 0x1e8], eax
xor eax, eax
cmp byte [edx + 1], 2
mov edx, dword [esp + 0x20]
cmove eax, ecx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x1f4], eax
mov eax, dword [esp + 0x25d0]
mov dword [esp + 0x16c4], eax
mov al, byte [edx + 0x3eeb8]
mov dword [esp + 0x1f0], esi
cmp al, 1
jne 0x1016493e
cmp byte [edx + 0x3abf1], 0
jne 0x10164953
cmp dword [edx + 0x5cf50], 0
jne 0x1016493a
cmp dword [edx + 0x5d044], 0
je 0x10164953
mov al, 1
jmp 0x10164955
test al, al
jne 0x10164953
cmp dword [edx + 0x5cf50], 0
je 0x10164953
test edi, edi
je 0x10164953
mov al, 1
jmp 0x10164955
xor al, al
mov byte [esp + 0x200], al
mov eax, dword [esp + 0x1f50]
mov dword [esp + 0x51c8], eax
mov eax, dword [esp + 0x1f58]
mov dword [esp + 0x51d0], eax
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0x176c]
mov ecx, dword [esp + 0x1f58]
push eax
lea eax, [esp + 0x51d0]
mov dword [esp + 0x51d4], ecx
push eax
lea eax, [esp + 0x104]
mov ecx, dword [esp + 0x1f68]
push eax
push dword [esp + 0xd8]
lea eax, [esp + 0xe4]
mov dword [esp + 0x51e8], ecx
push dword [esp + 0x90]
mov dword [esp + 0xb0], 0xffffffff
push eax
lea eax, [ebp + 0x319c]
mov dword [esp + 0xb8], htons
push eax
push dword [esp + 0xec]
lea eax, [esp + 0x1d4]
push dword [esp + 0x1f70]
push dword [esp + 0x1f70]
push eax
lea eax, [esp + 0x1770]
push eax
lea eax, [esp + 0x174c]
push eax
lea eax, [esp + 0x1700]
push eax
push dword [esp + 0x50]
push ebp
push dword [esp + 0xd8]
push edx
call fcn.10168d30
mov esi, eax
mov dword [esp + 0xa8], edx
mov eax, dword [esp + 0x8c]
add esp, 0x4c
mov dword [esp + 0x2c], esi
cmp byte [eax + 1], 0
je 0x10164acf
cmp byte [esp + 0x200], 0
mov ecx, dword [esp + 0x34]
mov bl, byte [esp + 0x1b]
jne 0x10164a8f
cmp dword [ecx + 0x1fc], 0
jle 0x10164a8f
mov al, bl
sub al, 0xd
cmp al, 3
ja 0x10164a8f
push dword [esp + 0x1c]
lea eax, [esp + 0x1f4c]
push eax
push ebp
call fcn.10166f70
mov edx, dword [esp + 0x68]
add esp, 0xc
mov ecx, dword [esp + 0x34]
cmp dword [ecx + 0x210], 0
jle 0x10164acf
mov al, bl
sub al, 0xd
cmp al, 3
ja 0x10164acf
movsx eax, bh
cmp edx, dword [esp + eax*8 + 0x4c94]
jg 0x10164acf
jl 0x10164ab7
cmp esi, dword [esp + eax*8 + 0x4c90]
jae 0x10164acf
mov dword [esp + eax*8 + 0x4c90], esi
mov dword [esp + eax*8 + 0x4c94], edx
movsx eax, bh
mov byte [esp + eax + 0x4cd0], bl
cmp esi, 0xffffffff
jne 0x10164ae0
cmp edx, 0x7fffffff
je 0x10164f7f
mov eax, dword [esp + 0x1c]
cmp byte [eax + 0x88], 0
je 0x10164b03
mov dword [esp + 0x1718], 0
mov dword [esp + 0x1740], 0
mov eax, dword [esp + 0x34]
cmp dword [eax + 0x204], 0
je 0x10164b39
test edi, edi
je 0x10164b39
movsx eax, bh
cmp edx, dword [esp + eax*8 + 0x51e8]
jg 0x10164b39
jl 0x10164b2b
cmp esi, dword [esp + eax*8 + 0x51e4]
jae 0x10164b39
mov dword [esp + eax*8 + 0x51e4], esi
mov dword [esp + eax*8 + 0x51e8], edx
cmp edx, dword [esp + 0x1f4c]
jg 0x10164d3f
jl 0x10164b55
cmp esi, dword [esp + 0x1f48]
jae 0x10164d3f
mov ecx, dword [esp + 0x9c]
movsx eax, bh
mov dword [esp + 0x84], ecx
mov ecx, dword [ebp + 0x10b8]
mov eax, dword [ebp + eax*4 + 0x243b8]
mov dword [esp + 0x25d0], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x80], eax
mov eax, dword [ebp + 0x10b0]
mov esi, dword [eax]
mov eax, dword [ebp + 0x10bc]
test eax, eax
je 0x10164ba3
movzx edx, byte [eax + 0x88]
jmp 0x10164ba5
xor edx, edx
test ecx, ecx
je 0x10164bb2
movzx eax, byte [ecx + 0x88]
jmp 0x10164bb4
xor eax, eax
cmp byte [esi + 0x88], 0
lea ebx, [eax + edx]
je 0x10164bd6
movzx eax, byte [esp + 0x2b]
cmp byte [eax + eax*2 + 0x10813470], 0xd
jb 0x10164bd6
mov edx, 1
jmp 0x10164bd8
xor edx, edx
mov eax, dword [esp + 0x16d8]
lea edi, [esp + 0x1f60]
movups xmm0, xmmword [esp + 0x16c8]
mov ecx, dword [esp + 0x16dc]
mov dword [esp + 0x1f48], eax
mov al, byte [esp + 0x2b]
mov byte [esp + 0x2014], al
mov eax, dword [esp + 0x54]
mov dword [esp + 0x1f4c], ecx
mov ecx, 0x29
movups xmmword [eax], xmm0
movups xmm0, xmmword [esp + 0x16d8]
movups xmmword [eax + 0x10], xmm0
movq xmm0, qword [esp + 0x16e8]
movq qword [eax + 0x20], xmm0
rep movsd dword es:[edi], dword [esi]
mov cl, byte [esp + 0x16e8]
mov esi, dword [esp + 0x7c]
movzx eax, cl
mov dword [esp + 0x2010], edx
mov dword [esp + 0x200c], eax
test esi, esi
je 0x10164c93
test cl, cl
jne 0x10164c62
test edx, edx
jne 0x10164c62
xor ecx, ecx
jmp 0x10164c67
mov ecx, 4
lea eax, [ebx*8]
add eax, ebp
mov eax, dword [eax + ecx + 0x7c38]
add eax, dword [esp + 0x1718]
mov dword [esp + 0x2004], eax
mov eax, dword [esp + 0x1740]
mov dword [esp + 0x2008], eax
movups xmm0, xmmword [esp + 0x1718]
mov ebx, dword [esp + 0x44]
lea eax, [ebp + 0x23b81]
movups xmmword [esp + 0x51a0], xmm0
movups xmm0, xmmword [esp + 0x1728]
push dword [ebx + 0x144]
movups xmmword [esp + 0x51b4], xmm0
push eax
movq xmm0, qword [esp + 0x1740]
push dword [ebx + 0x100]
movq qword [esp + 0x51cc], xmm0
call fcn.105137c0
push dword [ebx + 0x144]
push dword [ebp + 0x10c8]
push dword [ebx + 0x140]
call fcn.105137c0
add esp, 0x18
test esi, esi
je 0x10164d1b
mov eax, dword [esp + 0x51c8]
mov ecx, dword [esp + 0x51cc]
mov dword [esp + 0x1f50], eax
mov dword [esp + 0x1f54], ecx
mov eax, dword [esp + 0x51d0]
mov ecx, dword [esp + 0x51d4]
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x1f58], eax
mov dword [esp + 0x1f5c], ecx
mov eax, dword [esp + 0x34]
cmp dword [eax + 0x384], 0
je 0x10164e41
mov edi, dword [esp + 0xb8]
xor ecx, ecx
mov ebx, edi
test ebx, ebx
jle 0x10164d7f
lea eax, [esp + 0x18c0]
cmp edx, dword [eax + 4]
jl 0x10164d7d
jg 0x10164d71
cmp esi, dword [eax]
jb 0x10164d7d
inc ecx
add eax, 0xb8
cmp ecx, edi
jl 0x10164d66
jmp 0x10164d7f
mov ebx, ecx
mov ecx, dword [esp + 0xb4]
cmp ebx, ecx
jge 0x10164e41
test edi, edi
jle 0x10164dc9
lea eax, [ecx - 1]
cmp ebx, eax
jge 0x10164dc9
cmp edi, eax
cmovl eax, edi
imul ecx, ebx, 0xb8
sub eax, ebx
imul eax, eax, 0xb8
push eax
lea eax, [esp + 0x1814]
add eax, ecx
push eax
lea eax, [esp + 0x18d0]
add eax, ecx
push eax
call fcn.105137c0
add esp, 0xc
mov esi, dword [esp + 0x1c]
lea edi, [esp + 0xf8]
mov eax, dword [esp + 0x2c]
mov ecx, 0x29
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x1a8], eax
lea edi, [esp + 0x1810]
mov eax, dword [esp + 0x5c]
lea esi, [esp + 0xf8]
mov dword [esp + 0x1ac], eax
mov ecx, 0x2e
mov eax, dword [esp + 0x1fc]
mov dword [esp + 0x1a4], eax
imul eax, ebx, 0xb8
add edi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x1f40]
inc edi
cmp dword [esp + 0xb4], edi
cmovl edi, dword [esp + 0xb4]
mov dword [esp + 0xb8], edi
mov dword [esp + 0x1f40], edi
mov eax, dword [esp + 0x40]
cmp byte [eax + 1], 2
jne 0x10164e64
mov eax, dword [esp + 0x16c8]
sub eax, dword [esp + 0x58]
cdq
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x16c8]
jmp 0x10164e79
mov ecx, dword [esp + 0x16c8]
mov eax, ecx
cdq
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x58]
lea eax, [ecx + eax]
mov ebx, dword [esp + 0x16d0]
mov dword [esp + 0x2c], edx
push dword [esp + 0x2c]
cdq
push dword [esp + 0x68]
mov dword [esp + 0x68], eax
mov eax, dword [ebp + 0x31cc]
mov ebp, dword [esp + 0x16dc]
mov dword [esp + 0x90], edx
cdq
mov esi, edx
mov edi, eax
push esi
shld ebp, ebx, 7
push edi
shl ebx, 7
call fcn.10511b50
push dword [esp + 0x88]
mov ecx, eax
mov eax, edx
push dword [esp + 0x64]
add ecx, 0x100
push esi
adc eax, 0
shrd ecx, eax, 9
push edi
sar eax, 9
add ecx, ebx
mov dword [esp + 0x4c], ecx
adc eax, ebp
mov dword [esp + 0x3c], eax
call fcn.10511b50
mov esi, eax
mov eax, dword [esp + 0x2c]
add esi, 0x100
adc edx, 0
shrd esi, edx, 9
sar edx, 9
add esi, ebx
adc edx, ebp
cmp byte [esp + 0x24], 0
jg 0x10164f33
cmp eax, dword [esp + 0x25dc]
jg 0x10164f59
mov ecx, dword [esp + 0x3c]
jl 0x10164f23
cmp ecx, dword [esp + 0x25d8]
jae 0x10164f59
mov dword [esp + 0x25d8], ecx
mov dword [esp + 0x25dc], eax
jmp 0x10164f59
cmp eax, dword [esp + 0x25e4]
jg 0x10164f59
mov ecx, dword [esp + 0x3c]
jl 0x10164f4b
cmp ecx, dword [esp + 0x25e0]
jae 0x10164f59
mov dword [esp + 0x25e0], ecx
mov dword [esp + 0x25e4], eax
cmp edx, dword [esp + 0x25ec]
jg 0x10164f7b
jl 0x10164f6d
cmp esi, dword [esp + 0x25e8]
jae 0x10164f7b
mov dword [esp + 0x25e8], esi
mov dword [esp + 0x25ec], edx
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x1c]
mov al, byte [esp + 0x13]
inc al
mov byte [esp + 0x13], al
cmp al, byte [esp + 0x74]
jae 0x10164f9f
mov edx, dword [esp + 0xf0]
jmp 0x101645e0
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x54]
mov ebx, dword [esp + 0x20]
cmp dword [eax + 0x384], 0
je 0x10165006
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x1f4c]
push eax
lea eax, [esp + 0xd8]
push eax
push esi
push dword [esp + 0x8c]
lea eax, [esp + 0x1824]
push eax
lea eax, [esp + 0x525c]
push eax
push dword [esp + 0x60]
lea eax, [esp + 0x1d0]
push dword [esp + 0xb4]
push eax
push edi
push ebp
push ebx
call fcn.10167af0
add esp, 0x34
cmp dword [esp + 0x7c], 1
je 0x10165058
lea eax, [esp + 0x80]
push eax
push dword [esp + 0x48]
lea eax, [esp + 0x1f50]
push edi
push eax
push dword [esp + 0xbc]
lea eax, [esp + 0x5258]
push dword [esp + 0xbc]
push eax
push esi
push dword [esp + 0x5570]
push dword [esp + 0x5570]
push ebp
push dword [esp + 0xc0]
push ebx
call fcn.10171ae0
add esp, 0x34
push dword [esp + 0x48]
lea eax, [ebx + 0x5ccb8]
push dword [esp + 0x50]
push dword [esp + 0x78]
push dword [esp + 0x5c]
push eax
lea eax, [esp + 0x1f5c]
push eax
push esi
lea eax, [ebx + 0x3abf0]
push ebp
push eax
call fcn.10171320
push dword [esp + 0xa8]
mov esi, dword [esp + 0x524c]
lea eax, [esp + 0x100]
push dword [esp + 0xa8]
push esi
push eax
push dword [esp + 0x78]
lea eax, [esp + 0x1f80]
push dword [esp + 0x4c]
push edi
push ebp
push ebx
push eax
call fcn.1016f760
add esp, 0x4c
cmp byte [ebx + 0x5d038], 0
je 0x101650cf
mov eax, dword [ebp + 0x1b5e0]
jmp 0x101650d4
mov eax, 1
push eax
lea eax, [esp + 0x2014]
push eax
push dword [esp + 0x2010]
lea eax, [esp + 0x5250]
push dword [esp + 0x2010]
push eax
lea eax, [esp + 0x1f74]
push eax
lea eax, [esp + 0x202c]
push eax
push dword [esp + 0x60]
push dword [esp + 0x34]
push edi
push ebp
push ebx
call fcn.1016ef10
push 0
push ebp
push ebx
call fcn.10144f50
add esp, 0x3c
cmp byte [ebx + 0x3eba4], 0
je 0x10165290
cmp byte [ebx + 0x3adab], 0
mov edi, dword [esp + 0x1c]
mov eax, dword [edi]
je 0x10165290
cmp byte [eax + 0x1080825c], 0x40
ja 0x10165290
cmp byte [eax + 0x10808274], 0x40
ja 0x10165290
cmp eax, 3
jl 0x10165290
mov bh, byte [esp + 0x1f65]
mov al, bh
sub al, 0xd
cmp al, 0xb
jbe 0x10165421
mov eax, dword [esp + 0x54]
cmp dword [eax], 0x7fffffff
je 0x10165421
push dword [esp + 0x1f4c]
lea eax, [esp + 0x16f4]
push dword [esp + 0x1f4c]
push eax
push dword [esp + 0x50]
lea eax, [esp + 0x5148]
push esi
push dword [esp + 0x28]
mov esi, dword [esp + 0x38]
push ebp
push esi
push eax
call fcn.10141f60
mov ecx, dword [esp + 0x1728]
add esp, 0x24
mov edx, eax
cmp ecx, dword [esp + 0x1f4c]
jg 0x10165294
jl 0x101651e6
mov ecx, dword [esp + 0x1700]
cmp ecx, dword [esp + 0x1f48]
jae 0x10165294
mov ebx, dword [esp + 0x54]
mov esi, edi
mov byte [esp + 0x2014], 0x9c
mov dword [edi + 0xc], 0
lea edi, [esp + 0x1f60]
mov eax, dword [esp + 0x16f0]
mov ecx, dword [esp + 0x16fc]
mov dword [ebx], eax
mov eax, dword [esp + 0x16f8]
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x1704]
mov dword [ebx + 0xc], ecx
mov ecx, dword [esp + 0x1700]
mov dword [ebx + 0x10], ecx
mov dword [ebx + 0x14], eax
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x1f4c], eax
lea eax, [ebp + 0x23b81]
mov dword [esp + 0x1f48], ecx
mov ecx, 0x29
rep movsd dword es:[edi], dword [esi]
push dword [ebx + 0x144]
mov dword [esp + 0x2014], 0
push eax
push dword [ebx + 0x100]
mov dword [esp + 0x2018], edx
call fcn.105137c0
push dword [ebx + 0x144]
push dword [ebp + 0x10c8]
push dword [ebx + 0x140]
call fcn.105137c0
add esp, 0x18
mov esi, dword [esp + 0x20]
mov bh, byte [esp + 0x1f65]
mov ah, byte [esp + 0x1fff]
lea edi, [esi + 0x3abf0]
and ah, 0xbf
cmp dword [edi + 0x18], 0
mov byte [esp + 0x1fff], ah
je 0x10165329
mov ecx, dword [esp + 0x14]
mov al, byte [ecx + 0x1080825c]
mov bl, byte [ecx + 0x10808274]
cmp al, bl
movzx ecx, bl
movzx edx, al
cmovae edx, ecx
cmp edx, 8
jb 0x10165329
cmp byte [edi + 0x2640], 0
je 0x101652f9
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + 0x9f]
and eax, 7
test byte [edi + eax*4 + 0x26c4], 0x20
jne 0x10165322
lea eax, [esp + 0x5244]
push eax
push dword [esp + 0x18]
lea eax, [esp + 0x1f50]
push ebp
push esi
push eax
push dword [esp + 0x68]
call fcn.1016e3a0
mov bh, byte [esp + 0x1f7d]
add esp, 0x18
mov ah, byte [esp + 0x1fff]
test ah, 0x30
je 0x10165356
cmp bh, 0x10
je 0x10165356
cmp bh, 0x18
je 0x10165356
cmp bh, 0xe
je 0x10165356
cmp bh, 0x12
je 0x10165356
cmp bh, 0x15
je 0x10165356
cmp bh, 0x16
je 0x10165356
and ah, 0xcf
mov byte [esp + 0x1fff], ah
cmp byte [esp + 0x2014], 0xff
je 0x1016542a
mov eax, dword [esp + 0x5550]
cmp dword [esp + 0x1f4c], eax
jg 0x1016542a
jl 0x1016538e
mov eax, dword [esp + 0x554c]
cmp dword [esp + 0x1f48], eax
jae 0x1016542a
cmp dword [esi + 0x5cbd0], 0
jne 0x101653cd
mov eax, dword [esi + 0x5ce80]
test eax, eax
je 0x101653cd
push 0xa9
push 0x9c
push dword [esp + 0x7c]
push 0
push dword [esp + 0x2024]
push dword [esp + 0x28]
push eax
lea eax, [ebp + 0x17bc4]
push eax
push edi
call fcn.100806c0
add esp, 0x24
mov ebx, dword [esp + 0x1c]
lea esi, [esp + 0x1f60]
mov ecx, 0x29
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
push dword [esp + 0x200c]
mov al, byte [esp + 0x2010]
push dword [esp + 0x48]
or al, byte [esp + 0x2018]
or byte [ebp + 0x23b80], al
push ebp
call fcn.101717b0
add esp, 0xc
cmp byte [ebx + 0x87], 0
jbe 0x10165442
push ebp
push dword [esp + 0x24]
call fcn.100c2c80
add esp, 8
jmp 0x10165442
mov esi, dword [esp + 0x20]
jmp 0x1016529b
mov eax, dword [esp + 0x54]
mov dword [eax], closesocket
mov dword [eax + 0x10], 0xffffffff
mov dword [eax + 0x14], closesocket
mov ecx, dword [esp + 0x552c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.105116c0
add esp, 0x5520
ret