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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x1c8
mov dword [esp + 0x70], ecx
mov ecx, dword [ebp + 8]
call 0x4c2abb
pop eax
mov ebx, edx
mov dword [esp + 0x28], eax
mov esi, dword [ecx + 0x2ec]
test esi, esi
je 0x4c2aec
cmp esi, 6
ja 0x4c48be
imul eax, esi, 0x7c
cmp dword [eax + ecx - 0x7c], 0x80000001
je 0x4c48be
lea edi, [eax + ecx - 0x7c]
jmp 0x4c2af2
mov edi, dword [ecx + 0x2e8]
mov ecx, dword [edi + 0x38]
mov eax, dword [edi + 0x34]
test ecx, ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], 0
je 0x4c2b38
cmp byte [eax], 0x17
jne 0x4c2b38
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x38]
push 1
push 0x17
call fcn.004c48f0
add esp, 8
cmp byte [esp + 0xa8], 0
jne 0x4c2c7c
jmp 0x4c2b5d
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x38]
push 0
push 0x18
call fcn.004c48f0
add esp, 8
cmp byte [esp + 0xa8], 0
jne 0x4c2c7c
mov eax, dword [esp + 0x40]
mov dword [esp + 8], edi
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0xb4]
cmp eax, dword [esp + 0x3c]
jae 0x4c2c57
mov ecx, dword [esp + 0x38]
cmp byte [ecx + eax], 0x17
jne 0x4c2c57
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x38]
push 1
push 0x17
call fcn.004c48f0
add esp, 8
cmp byte [esp + 0xa8], 0
jne 0x4c2c7c
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x80], ebx
cmp ecx, esi
mov edx, eax
sbb edx, edi
mov dl, 0x24
jb 0x4c2c84
mov ebx, edi
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
cmp edi, esi
mov esi, edx
sbb edx, ebx
mov dl, 0x1f
jb 0x4c2c84
cmp ecx, edi
mov dl, 0x1d
sbb eax, esi
jb 0x4c2c84
mov eax, dword [esp + 0x40]
mov dl, 0x1a
cmp eax, dword [esp + 0x3c]
jne 0x4c2e3d
mov eax, dword [ebp + 0x14]
mov edi, dword [esp + 8]
mov dword [esp + 0x134], eax
mov eax, dword [edi + 0x4c]
test eax, eax
je 0x4c2cad
mov ecx, dword [edi + 0x50]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ecx
lea ecx, [esp + 0xa8]
mov dword [esp + 0xb0], 0
call fcn.004c0f90
mov esi, dword [ebp + 8]
test al, 1
mov eax, edx
je 0x4c2cc1
mov edx, eax
jmp 0x4c2c84
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x38]
push 0
push 0x18
call fcn.004c48f0
add esp, 8
cmp byte [esp + 0xa8], 0
je 0x4c2bb4
movzx edx, byte [esp + 0xa9]
movzx ecx, dl
xor eax, eax
add ecx, 0xffffffd2
cmp ecx, 3
ja 0x4c2c98
cmp ecx, 2
je 0x4c2c98
mov al, 1
mov ecx, dword [esp + 0x70]
mov byte [ecx + 1], al
mov byte [ecx + 2], dl
mov byte [ecx], 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [esp + 0x2c], 0
mov esi, dword [ebp + 8]
je 0x4c2d9e
mov dl, 0x22
xor eax, eax
jmp 0x4c2c98
mov eax, dword [esp + 0xb0]
cmp eax, dword [esp + 0xac]
jne 0x4c2cec
cmp dword [esp + 0x2c], 0
je 0x4c2d7d
mov al, 0x22
test dl, 1
je 0x4c2c53
jmp 0x4c2d88
mov bh, dl
lea ecx, [esp + 0x38]
lea edx, [esp + 0xa8]
push 2
call fcn.004c0d80
add esp, 4
mov esi, dword [esp + 0x38]
test esi, esi
je 0x4c2d36
mov edx, dword [esp + 0x3c]
mov al, 0x1a
test edx, edx
je 0x4c2c53
movzx ecx, byte [esi]
test cl, cl
je 0x4c2d40
mov esi, dword [ebp + 8]
js 0x4c2c53
cmp edx, 1
mov dl, bh
jne 0x4c2c53
jmp 0x4c2d5b
movzx eax, byte [esp + 0x3c]
jmp 0x4c2c53
dec edx
je 0x4c2d54
movzx ecx, byte [esi + 1]
mov esi, dword [ebp + 8]
test cl, cl
jns 0x4c2c53
jmp 0x4c2d29
mov esi, dword [ebp + 8]
xor ecx, ecx
mov dl, bh
cmp dword [esp + 0x2c], 0
je 0x4c2d7d
mov al, 0x22
test dl, 1
je 0x4c2c53
movzx ecx, cl
mov al, 0x33
cmp ecx, dword [ebp + 0x14]
jb 0x4c2c53
jmp 0x4c2d88
mov al, 0x1c
test dl, 1
jne 0x4c2c53
mov eax, dword [esp + 0xb0]
mov dl, 0x1a
cmp eax, dword [esp + 0xac]
jne 0x4c2e3d
mov eax, dword [edi + 0x5c]
test eax, eax
je 0x4c2e44
mov ecx, dword [edi + 0x60]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0xb0], 0
mov esi, dword [ecx + 4]
mov edi, dword [ecx + 8]
mov ebx, ecx
jmp 0x4c2dea
mov eax, dword [esp + 0xb0]
cmp eax, dword [esp + 0xac]
je 0x4c4331
lea ecx, [esp + 0x38]
lea edx, [esp + 0xa8]
push 6
call fcn.004c0d80
add esp, 4
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4c4327
cmp edi, dword [esp + 0x3c]
jne 0x4c2dd6
push edi
push eax
push esi
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4c2dd6
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xb0]
sub eax, ecx
add eax, ecx
jb 0x4c48be
mov esi, dword [ebp + 8]
jmp 0x4c2e54
xor eax, eax
jmp 0x4c2c98
mov ebx, dword [esp + 0x80]
test byte [ebx], 1
je 0x4c4338
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x4c4341
mov edi, dword [ebx + 0x20]
lea eax, [eax + eax*8]
xor ecx, ecx
mov edx, dword [ebx + 0x10]
lea eax, [edi + eax*4]
mov dword [esp + 0x140], edx
mov dword [esp + 0x154], eax
movzx eax, byte [ebx + 0x16]
mov byte [esp + 0x26], al
movzx eax, byte [ebx + 0x15]
mov byte [esp + 0x17], al
test al, 1
mov eax, 0x38
cmove eax, ecx
mov cl, 0x37
mov dword [esp + 0x13c], eax
movzx eax, byte [ebx + 0x14]
mov byte [esp + 0x27], al
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x50], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x4c], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x144], eax
lea eax, [eax + edx*4]
mov dword [esp + 0x7c], eax
mov eax, dword [edi + 4]
mov edx, dword [edi + 8]
mov dword [esp + 0x6c], edi
mov dword [esp + 8], eax
mov eax, dword [esi + 0x2ec]
test eax, eax
je 0x4c2eff
cmp eax, 6
ja 0x4c48be
mov edi, eax
imul eax, eax, 0x7c
cmp dword [eax + esi - 0x7c], 0x80000001
je 0x4c48be
lea eax, [eax + esi - 0x7c]
jmp 0x4c2f07
mov edi, eax
mov eax, dword [esi + 0x2e8]
cmp dword [eax + 0x30], edx
jne 0x4c2f2b
mov ebx, edx
push edx
push dword [esp + 0xc]
push dword [eax + 0x2c]
mov byte [esp + 0x21], cl
call sub.VCRUNTIME140.dll_memcmp
movzx ecx, byte [esp + 0x21]
add esp, 0xc
test eax, eax
je 0x4c2f7a
mov edx, dword [esp + 0x34]
and edx, 0xff000000
or edx, 0x370001
test dl, 1
je 0x4c4347
test edx, 0x100
jne 0x4c4353
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x34], edx
shr edx, 0x10
movzx ecx, cl
add edi, 0x24
call fcn.004c67c0
cmp edi, dword [esp + 0x154]
mov ecx, eax
jne 0x4c2ec5
jmp 0x4c435c
test edi, edi
mov dword [esp + 4], ebx
je 0x4c2f93
imul eax, edi, 0x7c
cmp dword [eax + esi - 0x7c], 0x80000001
je 0x4c48be
mov eax, dword [esp + 0x6c]
cmp byte [esp + 0x26], 2
mov dword [esp + 0x30], edi
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x10], ecx
mov dword [esp], eax
jne 0x4c305b
mov esi, dword [esp + 0x30]
test esi, esi
je 0x4c2fde
cmp esi, 6
ja 0x4c48be
mov eax, dword [ebp + 8]
lea edi, [esi - 1]
imul ebx, edi, 0x7c
cmp dword [eax + ebx], reloc.WS2_32.dll_accept
je 0x4c48be
add ebx, eax
jmp 0x4c2fe9
mov eax, dword [ebp + 8]
xor edi, edi
mov ebx, dword [eax + 0x2e8]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
lea eax, [ebx + 0x14]
push dword [ebp + 0x18]
push eax
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.004c4f40
add esp, 0x10
cmp al, 0x46
jne 0x4c4175
mov eax, dword [ebx + 0x44]
mov ecx, dword [ebx + 0x48]
test esi, esi
mov esi, edi
mov dword [esp + 0x10], eax
mov dword [esp], ecx
jne 0x4c2fb7
mov eax, dword [esp + 0x6c]
xor ecx, ecx
cmp dword [eax + 0x18], 0x80000001
je 0x4c3035
mov ecx, dword [eax + 0x1c]
mov edx, dword [ebp + 0x18]
mov esi, dword [ebp + 8]
mov eax, dword [eax + 0x20]
mov edx, dword [edx + 8]
mov dword [esp + 8], edx
mov edx, dword [esi + 0x2e8]
mov dword [esp + 0x130], edx
mov edx, dword [esp + 0x30]
jmp 0x4c3687
cmp dword [esp + 0x140], 0
mov edi, dword [esp + 0x30]
je 0x4c3f31
xor ecx, ecx
jmp 0x4c30b5
test byte [esp + 0x17], 1
mov edi, dword [esp + 0x68]
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
jne 0x4c41f6
test esi, esi
mov esi, dword [ebx + 0x44]
mov edx, dword [ebx + 0x48]
mov ecx, dword [ebx + 0x54]
mov eax, dword [ebx + 0x58]
mov dword [esp + 0x10], esi
mov dword [esp], edx
mov esi, dword [ebx + 0x3c]
mov edx, dword [ebx + 0x40]
mov dword [esp + 0x78], eax
mov dword [esp + 8], esi
mov dword [esp + 4], edx
je 0x4c3023
mov esi, edi
test edi, edi
mov dword [esp + 0x54], ecx
je 0x4c30e2
cmp esi, 6
ja 0x4c48be
mov eax, dword [ebp + 8]
lea edi, [esi - 1]
imul ebx, edi, 0x7c
cmp dword [eax + ebx], reloc.WS2_32.dll_accept
je 0x4c48be
add ebx, eax
jmp 0x4c30ed
mov eax, dword [ebp + 8]
xor edi, edi
mov ebx, dword [eax + 0x2e8]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
lea eax, [ebx + 0x14]
push dword [ebp + 0x18]
push eax
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.004c4f40
add esp, 0x10
mov ecx, dword [esp + 4]
cmp al, 0x46
jne 0x4c3f0f
cmp dword [ebx + 0x30], ecx
jne 0x4c48be
mov eax, ecx
mov ecx, dword [ebx + 0x2c]
push eax
push dword [esp + 0xc]
mov dword [esp + 0x20], ecx
push ecx
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4c48be
movzx ecx, byte [esp + 0x27]
test esi, esi
setne al
xor cl, 1
test al, cl
jne 0x4c3088
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x68], edi
mov ebx, dword [esp + 0x144]
mov edi, dword [esp + 4]
mov dword [esp + 0x20], esi
jmp 0x4c317f
mov edi, dword [esp + 4]
add ebx, 4
cmp ebx, dword [esp + 0x7c]
je 0x4c3071
mov ecx, dword [ebx]
mov eax, dword [ecx + 8]
mov dword [esp + 0xc], eax
neg eax
jno 0x4c31be
cmp dword [ecx + 0x2c], edi
jne 0x4c3172
push edi
push dword [esp + 0x1c]
push dword [ecx + 0x28]
mov dword [esp + 0x14], ecx
call sub.VCRUNTIME140.dll_memcmp
mov esi, dword [esp + 0x14]
add esp, 0xc
test eax, eax
jne 0x4c3172
mov edx, dword [esi + 0x38]
mov eax, 0x3c
test edx, edx
jne 0x4c31f2
jmp 0x4c3483
cmp dword [ecx + 0x10], edi
jne 0x4c3172
push edi
push dword [esp + 0x1c]
push dword [ecx + 0xc]
mov dword [esp + 0x14], ecx
call sub.VCRUNTIME140.dll_memcmp
mov esi, dword [esp + 0x14]
add esp, 0xc
test eax, eax
jne 0x4c3172
xor eax, eax
cmp eax, dword [esi + 0x38]
jo 0x4c34a6
mov edx, dword [esi + 0x3c]
mov eax, 0x40
lea ecx, [esp + 0xa8]
mov dword [esp + 8], esi
push dword [esi + eax]
call fcn.004c50e0
add esp, 4
movzx eax, byte [esp + 0xbb]
cmp al, 2
je 0x4c3172
test al, 1
jne 0x4c48be
cmp dword [esp + 0x20], 0
sete al
test byte [esp + 0xb9], al
jne 0x4c3172
movzx ecx, byte [esp + 0xb8]
xor cl, 1
or al, cl
test al, 1
je 0x4c3172
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + 0x74]
test esi, esi
je 0x4c347d
mov eax, dword [esp + 0xa8]
test eax, eax
je 0x4c316e
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0xac]
mov edi, dword [edx + 0x78]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x38]
mov dword [esp + 0x40], 0
call fcn.004c5740
mov eax, dword [esp + 0xac]
test eax, eax
sete cl
or cl, byte [esp + 0xa8]
test cl, 1
jne 0x4c316e
mov dword [esp + 0x9c], esi
mov dword [esp + 0xa0], edi
test edi, edi
mov edi, dword [esp + 4]
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x5c], eax
mov dword [esp + 0xa4], 0
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
je 0x4c3172
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x9c]
call fcn.004c11d0
test byte [esp + 0xa8], 1
jne 0x4c3172
mov eax, dword [esp + 0xb4]
or eax, dword [esp + 0xbc]
jne 0x4c3172
mov eax, dword [esp + 0xac]
test eax, eax
je 0x4c3172
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x38], eax
lea edx, [esp + 0x38]
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0xa8]
mov dword [esp + 0x40], 0
call fcn.004c5740
test byte [esp + 0xa8], 1
jne 0x4c3172
mov eax, dword [esp + 0xac]
test eax, eax
je 0x4c3172
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], edx
jmp 0x4c3456
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x5c]
call fcn.004c5960
movzx eax, byte [esp + 0xa8]
cmp eax, 6
je 0x4c3464
cmp eax, 3
jne 0x4c3453
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x88]
jne 0x4c33eb
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 4]
cmp eax, dword [esp + 0x60]
jne 0x4c33a1
jmp 0x4c3464
mov esi, dword [esp + 0xac]
mov edi, dword [esp + 0xb0]
jmp 0x4c340e
cmp eax, 5
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x88]
je 0x4c33db
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x84]
call fcn.004c5960
movzx eax, byte [esp + 0xa8]
cmp eax, 6
je 0x4c33db
cmp eax, 3
jne 0x4c33fb
cmp edi, dword [esp + 0xb0]
jne 0x4c33fe
push edi
push dword [esp + 0xb0]
push esi
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4c33fe
jmp 0x4c347d
cmp eax, 5
mov eax, dword [esp + 0x64]
cmp eax, dword [esp + 0x60]
jne 0x4c33a1
mov eax, dword [esp + 0xa4]
cmp eax, dword [esp + 0xa0]
jne 0x4c32f1
jmp 0x4c3172
neg dword [esp + 0xc]
jno 0x4c34a6
mov eax, 0x24
mov ecx, 0x1c
mov edx, 0x14
mov dword [esp + 0xc], 0x10
mov edi, 0x18
mov ebx, 0x20
jmp 0x4c34c7
mov eax, 0x34
mov ecx, 0x28
mov edx, 0x1c
mov edi, 0x24
mov ebx, 0x30
mov dword [esp + 0xc], 0x18
mov esi, dword [esp + 8]
mov eax, dword [esi + eax]
mov ebx, dword [esi + ebx]
mov ecx, dword [esi + ecx]
mov edi, dword [esi + edi]
mov edx, dword [esi + edx]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
mov esi, dword [esi + eax]
mov eax, dword [esp + 0x18]
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], edx
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], eax
push dword [ebp + 0x18]
lea eax, [esp + 0xac]
push eax
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.004c4f40
add esp, 0x10
cmp al, 0x46
jne 0x4c41d1
cmp byte [esp + 0x26], 0
mov ecx, dword [ebp + 0xc]
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
jne 0x4c3571
mov edx, dword [esp + 8]
xor edi, edi
xor eax, eax
cmp edi, dword [edx + 8]
seto al
shl eax, 6
cmp ecx, dword [edx + eax]
mov ecx, dword [ebp + 0x10]
sbb ecx, dword [edx + eax + 4]
jae 0x4c4320
mov eax, dword [esp + 0x54]
test eax, eax
je 0x4c3619
mov ecx, dword [esp + 0x78]
lea edx, [esp + 0xa8]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], 0
lea ecx, [esp + 0x38]
push 3
call fcn.004c0d80
add esp, 4
mov edx, dword [esp + 0x38]
test edx, edx
je 0x4c42f5
mov esi, dword [esp + 0x3c]
xor edi, edi
mov al, 0x1a
test esi, esi
je 0x4c418e
movzx ecx, byte [edx]
cmp cl, 7
ja 0x4c418e
cmp esi, 1
sete ah
test cl, cl
setne ch
test ah, ch
jne 0x4c418e
cmp esi, 1
je 0x4c48be
mov ah, 0xff
shl ah, cl
test cl, cl
je 0x4c3607
not ah
and ah, byte [edx + esi - 1]
jne 0x4c418e
test byte [edx + 1], 2
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
je 0x4c4319
mov edx, dword [esp + 8]
lea ecx, [esp + 0xa8]
push dword [ebx + 0x10]
push dword [ebx + 0xc]
call fcn.004c5c20
add esp, 8
mov eax, dword [esp + 0xa8]
mov edi, dword [esp + 0x68]
mov ecx, eax
and cl, 3
cmp cl, 2
je 0x4c3088
cmp eax, 3
jne 0x4c42ec
movzx eax, byte [esp + 0xb0]
jmp 0x4c42fa
mov eax, dword [esp + 0x64]
cmp eax, dword [esp + 0x60]
jne 0x4c427e
cmp dword [esp + 0x30], 0
mov ecx, dword [edx + 0x64]
mov eax, dword [edx + 0x68]
mov edx, dword [esp + 0x128]
je 0x4c41ba
test edx, edx
mov dword [esp + 0x30], edx
je 0x4c36b4
cmp edx, 6
ja 0x4c48be
dec edx
mov dword [esp + 0x128], edx
imul edx, edx, 0x7c
cmp dword [esi + edx], reloc.WS2_32.dll_accept
je 0x4c48be
add edx, esi
jmp 0x4c36c6
mov edx, dword [esp + 0x130]
mov dword [esp + 0x128], 0
test ecx, ecx
je 0x4c366f
test eax, eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], 0
mov dword [esp + 0x148], edx
je 0x4c3788
xor edi, edi
cmp byte [ecx], 0xa0
mov ecx, 0
mov dword [esp + 0x98], 0
jne 0x4c3744
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x5c]
push 0xa0
call fcn.004c0d80
add esp, 4
mov eax, dword [esp + 0xa8]
test eax, eax
mov dword [esp + 0x98], eax
je 0x4c42b2
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x14c], eax
mov eax, dword [esp + 0x60]
cmp ecx, eax
jae 0x4c3786
mov eax, dword [esp + 0x5c]
cmp byte [eax + ecx], 0xa1
jne 0x4c3786
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x5c]
push 0xa1
call fcn.004c0d80
add esp, 4
mov edi, dword [esp + 0xa8]
test edi, edi
je 0x4c42b2
mov eax, dword [esp + 0xac]
mov dword [esp + 0x78], eax
jmp 0x4c3795
jmp 0x4c3795
mov dword [esp + 0x98], 0
xor edi, edi
mov eax, dword [esp + 8]
mov dword [esp + 4], edi
mov dword [esp], eax
mov eax, dword [esp + 0x30]
test eax, eax
mov dword [esp + 0x1c], eax
je 0x4c37d0
cmp eax, 6
ja 0x4c48be
lea edx, [eax - 1]
imul ecx, edx, 0x7c
cmp dword [esi + ecx], reloc.WS2_32.dll_accept
je 0x4c48be
add ecx, esi
mov dword [esp + 0x54], edx
jmp 0x4c37df
mov ecx, dword [esp + 0x130]
mov dword [esp + 0x54], 0
mov edx, dword [ecx + 0x3c]
mov esi, dword [ecx + 0x40]
mov eax, dword [ecx + 0x6c]
mov ecx, dword [ecx + 0x70]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], 0
mov dword [esp + 0x38], edx
mov edx, dword [esp]
mov dword [esp + 0x3c], esi
mov ebx, edx
test eax, eax
mov dword [esp], edx
mov dword [esp + 0xc], ebx
je 0x4c3825
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x44]
jne 0x4c3841
mov dword [esp + 0x40], 0
cmp dword [esp + 0x38], 0
mov esi, dword [ebp + 8]
mov dword [esp + 0x38], 0
mov byte [esp + 0x18], 1
jne 0x4c388e
jmp 0x4c3e9b
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x40]
call fcn.004c5960
movzx ecx, byte [esp + 0xa8]
movzx eax, byte [esp + 0xa9]
mov esi, dword [ebp + 8]
cmp cl, 5
mov byte [esp + 0x18], cl
je 0x4c3ebc
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0xb0]
mov byte [esp + 0x5b], al
mov dword [esp + 0x12c], edx
mov dword [esp + 0x74], ecx
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x14c]
mov ecx, dword [esp + 0x78]
mov byte [esp + 0xa8], 0
mov esi, 1
xor ebx, ebx
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], edx
mov byte [esp + 0xb4], 1
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], ecx
lea ecx, [esp + 0xa8]
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 2
movzx edx, byte [ecx]
cmp dl, 2
mov byte [esp + 0x20], dl
je 0x4c3e1b
mov edx, dword [ecx + 4]
test edx, edx
je 0x4c3910
mov eax, edx
mov edx, dword [ecx + 8]
mov ecx, esi
jmp 0x4c3930
test edi, edi
setne cl
xor bl, 1
test cl, bl
je 0x4c3e1b
mov edx, dword [esp + 0x78]
mov ecx, 2
mov eax, edi
mov byte [esp + 0x20], 1
mov esi, dword [ebp + 8]
test edx, edx
mov dword [esp + 0xc0], ecx
je 0x4c3e04
cmp dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
mov al, 0x2e
je 0x4c3ebc
mov eax, dword [esp + 0x10]
xor ebx, ebx
mov dword [esp + 8], edx
mov dword [esp + 0x150], ecx
mov dword [esp + 0x94], 0
mov dword [esp + 0x68], 0
mov edx, dword [esp + 0xc]
mov dword [esp], edx
dec edx
cmp ebx, dword [esp + 8]
mov ch, 0x1a
jae 0x4c3e76
mov cl, byte [eax + ebx]
dec dword [esp]
mov eax, ecx
not al
test al, 0x1f
je 0x4c3e73
lea eax, [ebx + 1]
cmp eax, dword [esp + 8]
jae 0x4c3e73
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], edx
lea edi, [ebx + 2]
movsx edx, byte [eax + ebx + 1]
test edx, edx
jns 0x4c3af6
movzx eax, dl
add eax, 0xffffff7f
cmp eax, 3
ja 0x4c3e6f
mov eax, dword [eax*4 + 0x4c48c0]
mov edx, dword [esp + 8]
add eax, dword [esp + 0x28]
jmp eax
mov ebx, edi
add ebx, edx
jb 0x4c3e6f
cmp cl, 0x30
jne 0x4c3e6f
cmp ebx, dword [esp + 8]
ja 0x4c3e6f
add edi, eax
lea ecx, [esp + 0x84]
mov dword [esp + 0x9c], edi
mov dword [esp + 0xa0], edx
lea edx, [esp + 0x9c]
mov dword [esp + 0xa4], 0
call fcn.004c5960
movzx ecx, byte [esp + 0x84]
movzx edx, byte [esp + 0x85]
cmp cl, 5
je 0x4c3e29
mov eax, dword [esp + 0xa4]
cmp eax, dword [esp + 0xa0]
jne 0x4c3e6d
cmp byte [esp + 0x18], 4
ja 0x4c3bbb
movzx esi, byte [esp + 0x18]
mov edi, dword [esp + 0x88]
mov eax, dword [esp + 0x8c]
mov esi, dword [esi*4 + 0x4c48d0]
add esi, dword [esp + 0x28]
jmp esi
cmp ebx, dword [esp + 8]
je 0x4c3dd3
mov edx, dword [esp + 0xc]
mov esi, dword [ebp + 8]
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x10]
add edx, 0xffffffff
jb 0x4c397f
jmp 0x4c3eb6
mov eax, dword [ebp + 0x18]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 4]
mov dword [eax + 8], edx
test byte [esp + 0x68], 1
mov ecx, dword [esp + 0x150]
je 0x4c3dfd
test byte [esp + 0x94], 1
je 0x4c3ed2
mov dword [esp + 8], edx
mov dword [esp], edx
cmp ecx, 2
mov bl, 1
lea ecx, [esp + 0xb4]
mov esi, 2
jne 0x4c38f0
mov eax, dword [esp + 8]
mov ebx, dword [esp + 0xc]
mov dword [esp + 0xc], eax
jmp 0x4c3e41
mov ecx, dword [esp + 0xc]
mov eax, dword [ebp + 0x18]
mov dword [eax + 8], ecx
mov edi, dword [esp + 4]
cmp dl, 0x47
mov ebx, ecx
mov dword [esp], ecx
jne 0x4c3e87
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x40]
mov dword [esp + 8], edx
mov edx, dword [esp]
test eax, eax
mov dword [esp], edx
mov dword [esp + 0xc], ebx
jne 0x4c3813
jmp 0x4c3825
mov ch, 0xc
mov edi, dword [esp + 4]
mov edx, dword [esp]
mov eax, dword [ebp + 0x18]
mov dword [esp], edx
mov dword [esp + 0xc], edx
mov dword [eax + 8], edx
mov al, ch
mov edx, eax
mov ecx, dword [esp + 0xc]
mov eax, edx
and al, 0x7e
cmp al, 0x46
mov dword [esp + 8], ecx
jne 0x4c42ba
cmp dword [esp + 0x1c], 0
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x148]
jne 0x4c37a4
jmp 0x4c3661
xor edx, edx
mov ch, 0x2e
jmp 0x4c3e76
mov ecx, dword [esp + 8]
mov dword [esp + 0xc], ecx
jmp 0x4c3e85
mov esi, dword [ebp + 8]
mov al, 0x32
mov dword [esp], edx
jmp 0x4c3e85
movzx ecx, al
add ecx, 0xffffffd2
cmp ecx, 3
ja 0x4c418c
mov edi, 0x100
cmp ecx, 2
jne 0x4c418e
jmp 0x4c418c
test byte [esp + 0x27], 1
je 0x4c4012
test byte [esp + 0x17], 1
je 0x4c3f6a
test edi, edi
je 0x4c41fc
imul eax, dword [esp + 0x30], 0x7c
mov ecx, dword [ebp + 8]
cmp dword [eax + ecx - 0x7c], 0x80000001
je 0x4c48be
lea esi, [eax + ecx - 0x7c]
jmp 0x4c4205
test edi, edi
je 0x4c3f91
cmp edi, 6
ja 0x4c48be
mov eax, dword [ebp + 8]
lea ebx, [edi - 1]
imul esi, ebx, 0x7c
cmp dword [eax + esi], reloc.WS2_32.dll_accept
je 0x4c48be
add esi, eax
jmp 0x4c3f9c
mov eax, dword [ebp + 8]
xor ebx, ebx
mov esi, dword [eax + 0x2e8]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
lea eax, [esi + 0x14]
push dword [ebp + 0x18]
push eax
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.004c4f40
add esp, 0x10
cmp al, 0x46
jne 0x4c4175
mov eax, dword [esp + 4]
cmp dword [esi + 0x30], eax
jne 0x4c48be
push eax
push dword [esp + 0xc]
push dword [esi + 0x2c]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4c48be
mov ecx, dword [esi + 0x48]
mov eax, dword [esi + 0x44]
mov edx, dword [esi + 0x3c]
test edi, edi
mov edi, ebx
mov dword [esp], ecx
mov ecx, dword [esi + 0x40]
mov dword [esp + 0x10], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
jne 0x4c3f6a
jmp 0x4c3023
test byte [esp + 0x17], 1
je 0x4c40d1
mov edi, dword [esp + 0x30]
test edi, edi
je 0x4c4048
cmp edi, 6
ja 0x4c48be
mov eax, dword [ebp + 8]
mov ebx, edi
dec edi
imul esi, edi, 0x7c
cmp dword [eax + esi], reloc.WS2_32.dll_accept
je 0x4c48be
add esi, eax
jmp 0x4c4055
mov eax, dword [ebp + 8]
mov ebx, edi
xor edi, edi
mov esi, dword [eax + 0x2e8]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
lea eax, [esi + 0x14]
push dword [ebp + 0x18]
push eax
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.004c4f40
add esp, 0x10
cmp al, 0x46
jne 0x4c4175
mov eax, dword [esp + 4]
cmp dword [esi + 0x30], eax
jne 0x4c48be
push eax
push dword [esp + 0xc]
push dword [esi + 0x2c]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4c48be
test ebx, ebx
je 0x4c4275
mov ecx, dword [esi + 0x48]
mov eax, dword [esi + 0x44]
mov edx, dword [esi + 0x3c]
mov dword [esp], ecx
mov ecx, dword [esi + 0x40]
mov dword [esp + 0x10], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
test edi, edi
jne 0x4c4025
jmp 0x4c4048
test edi, edi
je 0x4c40f8
cmp edi, 6
ja 0x4c48be
mov eax, dword [ebp + 8]
lea ebx, [edi - 1]
imul esi, ebx, 0x7c
cmp dword [eax + esi], reloc.WS2_32.dll_accept
je 0x4c48be
add esi, eax
jmp 0x4c4103
mov eax, dword [ebp + 8]
xor ebx, ebx
mov esi, dword [eax + 0x2e8]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
lea eax, [esi + 0x14]
push dword [ebp + 0x18]
push eax
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.004c4f40
add esp, 0x10
cmp al, 0x46
jne 0x4c4175
mov eax, dword [esp + 4]
cmp dword [esi + 0x30], eax
jne 0x4c48be
push eax
push dword [esp + 0xc]
push dword [esi + 0x2c]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4c48be
mov ecx, dword [esi + 0x48]
mov eax, dword [esi + 0x44]
mov edx, dword [esi + 0x3c]
test edi, edi
mov edi, ebx
mov dword [esp], ecx
mov ecx, dword [esi + 0x40]
mov dword [esp + 0x10], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
jne 0x4c40d1
jmp 0x4c3023
movzx ecx, al
add ecx, 0xffffffd2
cmp ecx, 3
ja 0x4c418c
cmp ecx, 2
je 0x4c418c
mov edi, 0x100
jmp 0x4c418e
xor edi, edi
mov edx, dword [esp + 0x34]
mov esi, dword [ebp + 8]
movzx eax, al
shl eax, 0x10
and edx, 0xff000000
or edx, edi
lea edx, [eax + edx + 1]
movzx ecx, byte [esp + 0x15]
test dl, 1
jne 0x4c2f44
jmp 0x4c4347
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x6c]
and edx, 0xffffff00
mov dword [esp + 0x124], eax
jmp 0x4c41a7
movzx ecx, al
cmp ecx, 0x29
je 0x4c4284
cmp ecx, 0x43
je 0x4c4288
cmp ecx, 0x45
jne 0x4c428a
mov al, 0x44
jmp 0x4c428a
xor edi, edi
mov al, 0x38
jmp 0x4c418e
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x2e8]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
lea eax, [esi + 0x14]
push dword [ebp + 0x18]
push eax
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.004c4f40
add esp, 0x10
movzx ecx, al
lea edx, [ecx - 0x2e]
cmp edx, 2
jb 0x4c4185
cmp ecx, 0x31
je 0x4c4185
xor edi, edi
cmp ecx, 0x46
jne 0x4c418e
mov eax, dword [esp + 4]
cmp dword [esi + 0x30], eax
jne 0x4c48be
push eax
push dword [esp + 0xc]
push dword [esi + 0x2c]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
mov ecx, eax
mov al, 0x38
test ecx, ecx
je 0x4c418e
jmp 0x4c48be
mov eax, dword [esp + 0x13c]
jmp 0x4c42fa
xor eax, eax
mov dl, 0x1a
jmp 0x4c42d1
mov al, 0x28
jmp 0x4c428a
mov al, 0x42
xor edi, edi
cmp al, 0x29
je 0x4c42ab
movzx ecx, al
cmp ecx, 0x45
je 0x4c42a4
cmp ecx, 0x43
jne 0x4c42fa
mov al, 0x42
jmp 0x4c418e
mov al, 0x44
jmp 0x4c418e
mov al, 0x28
jmp 0x4c418e
movzx edx, byte [esp + 0xac]
movzx ecx, dl
xor eax, eax
add ecx, 0xffffffd2
cmp ecx, 3
ja 0x4c42d1
cmp ecx, 2
je 0x4c42d1
mov eax, 0x100
mov ecx, dword [esp + 0x34]
movzx edi, dl
shl edi, 0x10
and ecx, 0xff000000
or ecx, eax
lea edx, [edi + ecx + 1]
jmp 0x4c41a7
xor edi, edi
mov al, 0x20
jmp 0x4c418e
movzx eax, byte [esp + 0x3c]
movzx ecx, al
xor edi, edi
add ecx, 0xffffffd2
cmp ecx, 3
ja 0x4c418e
cmp ecx, 2
jne 0x4c4185
jmp 0x4c418e
mov al, 0x2a
jmp 0x4c418e
mov al, 0x21
jmp 0x4c418e
movzx edx, byte [esp + 0x3c]
jmp 0x4c2c84
mov dl, 0x34
jmp 0x4c2c84
mov dl, 0x34
xor eax, eax
jmp 0x4c2c98
xor eax, eax
mov dl, 0x37
jmp 0x4c4375
mov ecx, dword [esp + 0x124]
jmp 0x4c485f
mov ecx, dword [esp + 0x124]
jmp 0x4c437f
mov edx, ecx
movzx ecx, cl
xor eax, eax
add ecx, 0xffffffd2
cmp ecx, 3
ja 0x4c4375
cmp ecx, 2
je 0x4c4375
mov eax, 0x100
movzx ecx, dl
shl ecx, 0x10
lea edx, [ecx + eax + 1]
test dl, 1
je 0x4c485f
test edx, 0x100
jne 0x4c486e
mov ecx, dword [esp + 0x80]
shr edx, 0x10
mov dword [esp + 0x34], edx
mov eax, dword [ecx + 0x2c]
test eax, eax
je 0x4c487c
cmp dword [esp + 0x2c], 1
mov edi, dword [ecx + 0x28]
lea eax, [eax + eax*2]
sbb dword [esp + 0x134], 0xffffffff
lea ebx, [edi + eax*4]
mov dword [esp + 0x1c], ebx
mov edx, dword [edi + 4]
lea ecx, [esp + 0xa8]
push dword [edi + 8]
call fcn.004c16d0
add esp, 4
mov ecx, dword [esp + 0xa8]
movzx eax, byte [esp + 0xac]
cmp ecx, reloc.WS2_32.dll_accept
jne 0x4c4421
mov edx, eax
xor ecx, ecx
add dl, 0xd2
cmp dl, 4
jae 0x4c4409
movzx ecx, dl
mov ecx, dword [ecx*4 + 0x6201d8]
mov edx, dword [esp + 0x28]
shl eax, 0x10
and edx, 0xff000000
or edx, ecx
lea edx, [eax + edx + 1]
jmp 0x4c45c3
lea ebx, [esp + 0xb0]
mov dword [esp], ecx
movzx ecx, byte [esp + 0xaf]
movsd xmm1, qword [ebx + 8]
movsd xmm2, qword [ebx + 0x10]
mov edx, dword [ebx + 0x30]
movsd xmm0, qword [ebx]
mov dword [esp + 8], ecx
movzx ecx, word [esp + 0xad]
movsd qword [esp + 0x160], xmm1
movsd xmm1, qword [ebx + 0x18]
movsd qword [esp + 0x168], xmm2
movsd xmm2, qword [ebx + 0x20]
mov dword [esp + 0x188], edx
mov edx, dword [esp + 0xe4]
movsd qword [esp + 0x158], xmm0
movsd qword [esp + 0x170], xmm1
movsd xmm1, qword [ebx + 0x28]
movsd qword [esp + 0x178], xmm2
movsd xmm2, qword [ebx + 0x6c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xe8]
movsd qword [esp + 0x180], xmm1
movsd xmm1, qword [ebx + 0x64]
movsd qword [esp + 0x1b8], xmm2
movsd xmm2, qword [ebx + 0x5c]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xec]
movsd qword [esp + 0x1b0], xmm1
movsd xmm1, qword [ebx + 0x54]
movsd qword [esp + 0x1a8], xmm2
movsd xmm2, qword [ebx + 0x44]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0xf0]
movsd qword [esp + 0x1a0], xmm1
movsd xmm1, qword [ebx + 0x4c]
mov ebx, dword [esi + 0x2ec]
movsd qword [esp + 0x190], xmm2
mov dword [esp + 0x2c], edx
test ebx, ebx
movsd qword [esp + 0x198], xmm1
mov dword [esp + 0x20], ebx
je 0x4c454a
cmp ebx, 6
ja 0x4c48be
imul edx, ebx, 0x7c
cmp dword [edx + esi - 0x7c], 0x80000001
je 0x4c48be
lea edx, [edx + esi - 0x7c]
jmp 0x4c4550
mov edx, dword [esi + 0x2e8]
mov ebx, dword [esp + 8]
shl ecx, 8
mov dword [esp + 0x7c], 0x370001
mov dword [esp + 0x18], edi
shl ebx, 0x18
or ebx, ecx
or ebx, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 8], ebx
cmp eax, dword [edx + 0x30]
jne 0x4c458b
push eax
push dword [edx + 0x2c]
push dword [esp + 0xc]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x4c45ff
mov edx, dword [esp + 0x28]
and edx, 0xff000000
add edx, dword [esp + 0x7c]
test dword [esp], 0x7fffffff
je 0x4c45b8
push dword [esp + 8]
push 0
push dword [0x623140]
mov esi, edx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov edx, esi
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
test dl, 1
je 0x4c48aa
test edx, 0x100
jne 0x4c48b4
mov dword [esp + 0x28], edx
shr edx, 0x10
movzx ecx, al
add edi, 0xc
call fcn.004c67c0
cmp edi, ebx
mov dword [esp + 0x34], eax
jne 0x4c43c7
jmp 0x4c487c
mov edi, dword [esp + 0x20]
test edi, edi
je 0x4c4618
imul eax, edi, 0x7c
cmp dword [eax + esi - 0x7c], 0x80000001
je 0x4c48be
mov eax, dword [esi + 0x2e8]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x6c], eax
jmp 0x4c4632
test edi, edi
mov edi, esi
je 0x4c46ad
test edi, edi
je 0x4c4650
mov eax, dword [ebp + 8]
lea esi, [edi - 1]
imul ebx, esi, 0x7c
cmp dword [eax + ebx], reloc.WS2_32.dll_accept
je 0x4c48be
add ebx, eax
jmp 0x4c4656
mov ebx, dword [esp + 0x6c]
xor esi, esi
cmp ecx, dword [ebx + 0x48]
jne 0x4c462c
push ecx
push dword [ebx + 0x44]
push dword [esp + 0x18]
call sub.VCRUNTIME140.dll_memcmp
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
add esp, 0xc
test eax, eax
jne 0x4c462c
mov eax, dword [esp + 0xc]
cmp eax, dword [ebx + 0x40]
jne 0x4c462c
push dword [esp + 0xc]
push dword [ebx + 0x3c]
push dword [esp + 0xc]
call sub.VCRUNTIME140.dll_memcmp
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
add esp, 0xc
test edi, edi
je 0x4c46a5
test eax, eax
mov edi, esi
jne 0x4c4632
test eax, eax
je 0x4c458f
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 4]
test eax, eax
je 0x4c46f5
dec eax
mov ecx, dword [ebp + 0x18]
cmp dword [esp + 0x20], 6
mov dword [ecx + 4], eax
jb 0x4c4702
test dword [esp], 0x7fffffff
je 0x4c46e0
push dword [esp + 8]
push 0
push dword [0x623140]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov edx, dword [esp + 0x28]
and edx, 0xff000000
or edx, 0x300001
jmp 0x4c45b8
mov dword [esp + 0x7c], 0x2f0101
jmp 0x4c458f
imul eax, dword [esp + 0x20], 0x7c
mov ecx, dword [ebp + 8]
lea ebx, [ecx + eax]
mov eax, dword [ecx + eax]
cmp eax, reloc.WS2_32.dll_bind
jl 0x4c472c
test eax, eax
je 0x4c472c
push dword [ebx + 4]
push 0
push dword [0x623140]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp]
movsd xmm0, qword [esp + 0x158]
movsd xmm1, qword [esp + 0x160]
movsd xmm2, qword [esp + 0x1a0]
mov edx, dword [esp + 0x80]
lea ecx, [esp + 0xa8]
mov dword [ebx], eax
mov eax, dword [esp + 8]
mov dword [ebx + 4], eax
movsd qword [ebx + 8], xmm0
movsd xmm0, qword [esp + 0x168]
mov eax, dword [esp + 0x188]
movsd qword [ebx + 0x10], xmm1
movsd xmm1, qword [esp + 0x198]
movsd qword [ebx + 0x18], xmm0
movsd xmm0, qword [esp + 0x170]
mov dword [ebx + 0x38], eax
mov eax, dword [esp + 4]
movsd qword [ebx + 0x20], xmm0
movsd xmm0, qword [esp + 0x178]
movsd qword [ebx + 0x28], xmm0
movsd xmm0, qword [esp + 0x180]
movsd qword [ebx + 0x30], xmm0
mov dword [ebx + 0x3c], eax
mov eax, dword [esp + 0xc]
movsd xmm0, qword [esp + 0x190]
mov dword [ebx + 0x40], eax
mov eax, dword [esp + 0x10]
mov dword [ebx + 0x44], eax
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0x48], eax
movsd qword [ebx + 0x54], xmm1
movsd xmm1, qword [esp + 0x1a8]
movsd qword [ebx + 0x5c], xmm2
movsd xmm2, qword [esp + 0x1b0]
mov eax, dword [ebp + 8]
movsd qword [ebx + 0x4c], xmm0
movsd qword [ebx + 0x64], xmm1
movsd xmm1, qword [esp + 0x1b8]
movsd qword [ebx + 0x6c], xmm2
movsd qword [ebx + 0x74], xmm1
inc dword [eax + 0x2ec]
push dword [ebp + 0x18]
push dword [esp + 0x138]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push eax
call fcn.004c2aa0
add esp, 0x14
cmp byte [esp + 0xa8], 1
jne 0x4c4848
mov ecx, dword [ebp + 8]
call fcn.004c6800
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0xac]
mov dword [esp + 0x54], eax
jmp 0x4c45b8
mov eax, dword [esp + 0x70]
mov dword [eax + 4], ecx
mov byte [eax], 0
jmp 0x4c2ca5
mov eax, dword [esp + 0x70]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp 0x4c2ca5
mov ebx, dword [esp + 0x34]
mov edx, 0x1000101
mov eax, ebx
add al, 0xd2
movzx ecx, al
shl ecx, 3
shr edx, cl
xor ecx, ecx
cmp al, 4
cmovb ecx, edx
mov edx, dword [esp + 0x70]
mov byte [edx + 1], cl
mov byte [edx + 2], bl
mov byte [edx], 1
jmp 0x4c2ca5
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x54]
jmp 0x4c4863
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x54]
jmp 0x4c4872
ud2