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

Disassembly:
sub esp, 0x270
mov eax, dword [0x10a78b80]
xor eax, esp
mov dword [esp + 0x26c], eax
push ebx
mov ebx, dword [esp + 0x280]
xor ecx, ecx
push ebp
mov ebp, dword [esp + 0x27c]
push esi
mov esi, dword [esp + 0x284]
push edi
mov dword [esp + 0x20], esi
mov dword [esp + 0x34], ebx
mov edi, dword [esi + 0x1c]
mov dword [esp + 0x10], 0
mov dword [esp + 0x30], ecx
test edi, edi
je 0x104f0a16
lea edx, [esi + 0x84]
mov eax, dword [edx]
cmp eax, 0x46454452
ja 0x104f09e4
je 0x104f0a09
cmp eax, 0x3147534f
ja 0x104f09d4
je 0x104f0a09
cmp eax, 0x30494653
je 0x104f0a09
cmp eax, 0x31475349
je 0x104f0a09
jmp 0x104f0a0a
cmp eax, 0x3547534f
je 0x104f0a09
cmp eax, 0x42445053
je 0x104f0a09
jmp 0x104f0a0a
cmp eax, 0x52444853
ja 0x104f09fb
je 0x104f0a09
sub eax, 0x4e475349
je 0x104f0a09
sub eax, 6
je 0x104f0a09
jmp 0x104f0a0a
cmp eax, 0x54415453
je 0x104f0a09
cmp eax, 0x58454853
jne 0x104f0a0a
inc ecx
add edx, 4
sub edi, 1
jne 0x104f09b0
mov dword [esp + 0x30], ecx
xor eax, eax
lea edi, [ebp + 4]
test ebp, ebp
mov ecx, edi
push 1
cmove ecx, eax
push 0
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov dword [esp + 0x28], eax
test ebx, ebx
lea eax, [esp + 0x48]
mov dword [esp + 0x2c], 0x43425844
cmovne eax, ebx
mov dword [esp + 0x48], 0x1058dafb
push closesocket
push 0x1058dafb
mov dword [esp + 0x54], 0
mov byte [esp + 0x58], 1
mov dword [esp + 0x5c], 0
mov dword [esp + 0x2c], eax
call fcn.1050b4f0
xor edx, edx
add esp, 8
test eax, eax
mov ecx, eax
cmovle edx, eax
sub ecx, edx
cmp ecx, eax
cmovge ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
lea ecx, [edx + 0x1058dafb]
test ecx, ecx
je 0x104f0aa9
cmp eax, 0x7fffffff
jne 0x104f0aa9
push eax
push ecx
call fcn.1050b4f0
add esp, 8
push dword [esp + 0x24]
mov eax, dword [ebp]
lea ecx, [esp + 0x30]
push 4
push ecx
mov ecx, ebp
call dword [eax + 4]
add dword [esp + 0x10], eax
push ebx
push 0x10
push 0
push ebp
call fcn.104f1890
add dword [esp + 0x20], eax
lea eax, [esp + 0x58]
test ebx, ebx
mov dword [esp + 0x3c], 1
push closesocket
cmovne eax, ebx
mov dword [esp + 0x5c], 0x1058dafb
push 0x1058dafb
mov dword [esp + 0x64], 0
mov byte [esp + 0x68], 1
mov dword [esp + 0x6c], 0
mov dword [esp + 0x3c], eax
call fcn.1050b4f0
xor edx, edx
add esp, 0x18
test eax, eax
mov ecx, eax
cmovle edx, eax
sub ecx, edx
cmp ecx, eax
cmovge ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
lea ecx, [edx + 0x1058dafb]
test ecx, ecx
je 0x104f0b45
cmp eax, 0x7fffffff
jne 0x104f0b45
push eax
push ecx
call fcn.1050b4f0
add esp, 8
push dword [esp + 0x24]
mov eax, dword [ebp]
lea ecx, [esp + 0x30]
push 4
push ecx
mov ecx, ebp
call dword [eax + 4]
add dword [esp + 0x10], eax
mov ecx, edi
mov eax, dword [edi]
push 1
push 0
push 0
mov eax, dword [eax + 4]
call eax
push ebx
push 4
push 0
push ebp
mov dword [esp + 0x74], eax
mov dword [esp + 0x70], edx
call fcn.104f1890
add dword [esp + 0x20], eax
lea eax, [esp + 0x58]
test ebx, ebx
mov dword [esp + 0x58], 0x1058dafb
push closesocket
cmovne eax, ebx
mov dword [esp + 0x60], 0
push 0x1058dafb
mov byte [esp + 0x68], 1
mov dword [esp + 0x6c], 0
mov dword [esp + 0x3c], eax
call fcn.1050b4f0
xor edx, edx
add esp, 0x18
test eax, eax
mov ecx, eax
cmovle edx, eax
sub ecx, edx
cmp ecx, eax
cmovge ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
lea ecx, [edx + 0x1058dafb]
test ecx, ecx
je 0x104f0bf0
cmp eax, 0x7fffffff
jne 0x104f0bf0
push eax
push ecx
call fcn.1050b4f0
add esp, 8
push dword [esp + 0x24]
mov eax, dword [ebp]
lea ecx, [esp + 0x34]
push 4
push ecx
mov ecx, ebp
call dword [eax + 4]
add dword [esp + 0x10], eax
mov ecx, edi
mov eax, dword [edi]
push 1
push 0
push 0
mov eax, dword [eax + 4]
call eax
mov ecx, dword [esp + 0x30]
push ebx
shl ecx, 2
push ecx
push 0
push ebp
mov dword [esp + 0x68], eax
mov dword [esp + 0x78], edx
call fcn.104f1890
add dword [esp + 0x20], eax
lea eax, [esp + 0x18c]
push 0x80
push 0
push eax
call fcn.10513d40
push 0x80
lea eax, [esp + 0x21c]
push 0
push eax
call fcn.10513d40
xor ecx, ecx
add esp, 0x28
mov dword [esp + 0x2c], ecx
cmp dword [esi + 0x1c], ecx
jbe 0x104f1608
mov eax, dword [esp + 0x20]
lea edi, [esp + 0x1fc]
lea esi, [esp + 0x17c]
mov dword [esp + 0x14], edi
add eax, 0x84
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], eax
mov eax, dword [eax]
cmp eax, 0x46454452
ja 0x104f10ea
je 0x104f0eeb
cmp eax, 0x3147534f
ja 0x104f0e71
je 0x104f110f
cmp eax, 0x30494653
je 0x104f0e13
cmp eax, 0x31475349
jne 0x104f15e7
mov eax, dword [ebp + 4]
lea ecx, [ebp + 4]
push 1
push 0
push 0
mov eax, dword [eax + 4]
call eax
sub eax, dword [esp + 0x28]
test ebx, ebx
mov dword [esi], eax
lea esi, [esp + 0xec]
push closesocket
push 0x1058dafb
mov dword [esp + 0x20], 0x4e475349
cmovne esi, ebx
mov dword [esp + 0xf4], 0x1058dafb
mov dword [esp + 0xf8], 0
mov byte [esp + 0xfc], 1
mov dword [esp + 0x100], 0
call fcn.1050b4f0
add esp, 8
mov dword [esp + 0x70], eax
lea eax, [esp + 0x6c]
mov dword [esp + 0x6c], 0x1058dafb
lea ecx, [esp + 0x150]
mov byte [esp + 0x74], 1
push closesocket
push 0
push eax
call fcn.104d8fc0
mov eax, dword [ebp]
lea ecx, [esp + 0x18]
push esi
push 4
push ecx
mov ecx, ebp
call dword [eax + 4]
add dword [esp + 0x10], eax
lea esi, [esp + 0xfc]
test ebx, ebx
mov dword [esp + 0x18], 0
push closesocket
push 0x1058dafb
mov dword [esp + 0x104], 0x1058dafb
cmovne esi, ebx
mov dword [esp + 0x108], 0
mov byte [esp + 0x10c], 1
mov dword [esp + 0x110], 0
call fcn.1050b4f0
add esp, 8
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x78]
mov dword [esp + 0x78], 0x1058dafb
lea ecx, [esp + 0x160]
mov byte [esp + 0x80], 1
push closesocket
push 0
push eax
call fcn.104d8fc0
mov eax, dword [ebp]
lea ecx, [esp + 0x18]
push esi
push 4
push ecx
mov ecx, ebp
call dword [eax + 4]
add dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
push ebx
add eax, 0x20
push eax
push ebp
call fcn.104efc80
add esp, 0xc
jmp 0x104f15cf
mov eax, dword [ebp + 4]
lea ecx, [ebp + 4]
push 1
push 0
push 0
mov eax, dword [eax + 4]
call eax
sub eax, dword [esp + 0x28]
mov dword [esi], eax
lea eax, [esp + 0x14]
push ebx
push eax
push ebp
mov dword [esp + 0x20], 0x30494653
call fcn.10495bf0
add dword [esp + 0x1c], eax
lea eax, [esp + 0x20]
push ebx
push eax
push ebp
mov dword [esp + 0x2c], 0
call fcn.10495bf0
add dword [esp + 0x28], eax
mov eax, dword [esp + 0x38]
push ebx
add eax, 0x58
push eax
push ebp
call fcn.1049d510
add esp, 0x24
jmp 0x104f15d3
cmp eax, 0x3547534f
je 0x104f110f
cmp eax, 0x42445053
jne 0x104f15e7
mov eax, dword [ebp + 4]
lea ecx, [ebp + 4]
push 1
push 0
push 0
mov eax, dword [eax + 4]
call eax
sub eax, dword [esp + 0x28]
mov dword [esi], eax
lea eax, [esp + 0x14]
push ebx
push eax
push ebp
mov dword [esp + 0x20], 0x42445053
call fcn.10495bf0
add dword [esp + 0x1c], eax
lea eax, [esp + 0x20]
push ebx
push eax
push ebp
mov dword [esp + 0x2c], 0
call fcn.10495bf0
add dword [esp + 0x28], eax
mov eax, dword [esp + 0x38]
push ebx
mov ecx, dword [eax + 0x60]
mov eax, dword [eax + 0x64]
sub eax, ecx
push eax
push ecx
push ebp
call fcn.104d46c0
add esp, 0x28
jmp 0x104f15d3
mov eax, dword [ebp + 4]
lea ecx, [ebp + 4]
push 1
push 0
push 0
mov eax, dword [eax + 4]
call eax
sub eax, dword [esp + 0x28]
test ebx, ebx
mov dword [esi], eax
lea eax, [esp + 0x9c]
cmovne eax, ebx
mov dword [esp + 0x1c], 0x46454452
push closesocket
push 0x1058dafb
mov dword [esp + 0xa4], 0x1058dafb
mov dword [esp + 0xa8], 0
mov byte [esp + 0xac], 1
mov dword [esp + 0xb0], 0
mov dword [esp + 0x1c], eax
call fcn.1050b4f0
xor edx, edx
add esp, 8
test eax, eax
mov ecx, eax
cmovle edx, eax
sub ecx, edx
cmp ecx, eax
cmovge ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
lea ecx, [edx + 0x1058dafb]
test ecx, ecx
je 0x104f0f87
cmp eax, 0x7fffffff
jne 0x104f0f87
push eax
push ecx
call fcn.1050b4f0
add esp, 8
push dword [esp + 0x14]
mov eax, dword [ebp]
lea ecx, [esp + 0x20]
push 4
push ecx
mov ecx, ebp
call dword [eax + 4]
mov ecx, dword [esp + 0x20]
add dword [esp + 0x10], eax
push closesocket
push 0x1058dafb
mov eax, dword [ecx + 0x70]
sub eax, dword [ecx + 0x6c]
test ebx, ebx
mov dword [esp + 0x24], eax
lea eax, [esp + 0xb4]
cmovne eax, ebx
mov dword [esp + 0xb4], 0x1058dafb
mov dword [esp + 0xb8], 0
mov byte [esp + 0xbc], 1
mov dword [esp + 0xc0], 0
mov dword [esp + 0x1c], eax
call fcn.1050b4f0
xor edx, edx
add esp, 8
test eax, eax
mov ecx, eax
cmovle edx, eax
sub ecx, edx
cmp ecx, eax
cmovge ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
lea ecx, [edx + 0x1058dafb]
test ecx, ecx
je 0x104f1029
cmp eax, 0x7fffffff
jne 0x104f1029
push eax
push ecx
call fcn.1050b4f0
add esp, 8
push dword [esp + 0x14]
mov eax, dword [ebp]
lea ecx, [esp + 0x20]
push 4
push ecx
mov ecx, ebp
call dword [eax + 4]
add dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
push closesocket
push 0x1058dafb
mov dword [esp + 0xc4], 0x1058dafb
mov ecx, dword [eax + 0x6c]
mov eax, dword [eax + 0x70]
sub eax, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
test ebx, ebx
lea eax, [esp + 0xc4]
mov dword [esp + 0xc8], 0
cmovne eax, ebx
mov byte [esp + 0xcc], 1
mov dword [esp + 0xd0], 0
mov dword [esp + 0x1c], eax
call fcn.1050b4f0
xor edx, edx
add esp, 8
test eax, eax
mov ecx, eax
cmovle edx, eax
sub ecx, edx
cmp ecx, eax
cmovge ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
lea ecx, [edx + 0x1058dafb]
test ecx, ecx
je 0x104f10d1
cmp eax, 0x7fffffff
jne 0x104f10d1
push eax
push ecx
call fcn.1050b4f0
add esp, 8
push dword [esp + 0x14]
mov eax, dword [ebp]
mov ecx, ebp
push dword [esp + 0x20]
push dword [esp + 0x20]
call dword [eax + 4]
jmp 0x104f15d3
cmp eax, 0x52444853
ja 0x104f1275
je 0x104f128b
sub eax, 0x4e475349
je 0x104f0cca
sub eax, 6
jne 0x104f15e7
mov eax, dword [ebp + 4]
lea ecx, [ebp + 4]
push 1
push 0
push 0
mov eax, dword [eax + 4]
call eax
sub eax, dword [esp + 0x28]
test ebx, ebx
mov dword [esi], eax
lea eax, [esp + 0xcc]
cmovne eax, ebx
mov dword [esp + 0x14], 0x4e47534f
push closesocket
push 0x1058dafb
mov dword [esp + 0xd4], 0x1058dafb
mov dword [esp + 0xd8], 0
mov byte [esp + 0xdc], 1
mov dword [esp + 0xe0], 0
mov dword [esp + 0x20], eax
call fcn.1050b4f0
xor edx, edx
add esp, 8
test eax, eax
mov ecx, eax
cmovle edx, eax
sub ecx, edx
cmp ecx, eax
cmovge ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
lea ecx, [edx + 0x1058dafb]
test ecx, ecx
je 0x104f11ab
cmp eax, 0x7fffffff
jne 0x104f11ab
push eax
push ecx
call fcn.1050b4f0
add esp, 8
push dword [esp + 0x18]
mov eax, dword [ebp]
lea ecx, [esp + 0x18]
push 4
push ecx
mov ecx, ebp
call dword [eax + 4]
add dword [esp + 0x10], eax
lea eax, [esp + 0xdc]
test ebx, ebx
mov dword [esp + 0x14], 0
push closesocket
cmovne eax, ebx
mov dword [esp + 0xe0], 0x1058dafb
push 0x1058dafb
mov dword [esp + 0xe8], 0
mov byte [esp + 0xec], 1
mov dword [esp + 0xf0], 0
mov dword [esp + 0x20], eax
call fcn.1050b4f0
xor edx, edx
add esp, 8
test eax, eax
mov ecx, eax
cmovle edx, eax
sub ecx, edx
cmp ecx, eax
cmovge ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
lea ecx, [edx + 0x1058dafb]
test ecx, ecx
je 0x104f1247
cmp eax, 0x7fffffff
jne 0x104f1247
push eax
push ecx
call fcn.1050b4f0
add esp, 8
push dword [esp + 0x18]
mov eax, dword [ebp]
lea ecx, [esp + 0x18]
push 4
push ecx
mov ecx, ebp
call dword [eax + 4]
add dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
push ebx
add eax, 0x30
push eax
push ebp
call fcn.104efc80
add esp, 0xc
jmp 0x104f15d3
cmp eax, 0x54415453
je 0x104f1402
cmp eax, 0x58454853
jne 0x104f15e7
mov eax, dword [ebp + 4]
lea ecx, [ebp + 4]
push 1
push 0
push 0
mov eax, dword [eax + 4]
call eax
sub eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
mov dword [esi], eax
mov eax, 0x52444853
push closesocket
push 0x1058dafb
cmp byte [ecx + 0x50], 0
mov ecx, 0x58454853
mov dword [esp + 0x114], 0x1058dafb
cmovne eax, ecx
mov dword [esp + 0x118], 0
mov dword [esp + 0x1c], eax
test ebx, ebx
lea eax, [esp + 0x114]
mov byte [esp + 0x11c], 1
cmovne eax, ebx
mov dword [esp + 0x120], 0
mov dword [esp + 0x20], eax
call fcn.1050b4f0
xor edx, edx
add esp, 8
test eax, eax
mov ecx, eax
cmovle edx, eax
sub ecx, edx
cmp ecx, eax
cmovge ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
lea ecx, [edx + 0x1058dafb]
test ecx, ecx
je 0x104f1338
cmp eax, 0x7fffffff
jne 0x104f1338
push eax
push ecx
call fcn.1050b4f0
add esp, 8
push dword [esp + 0x18]
mov eax, dword [ebp]
lea ecx, [esp + 0x18]
push 4
push ecx
mov ecx, ebp
call dword [eax + 4]
add dword [esp + 0x10], eax
lea eax, [esp + 0x11c]
test ebx, ebx
mov dword [esp + 0x14], 0
push closesocket
cmovne eax, ebx
mov dword [esp + 0x120], 0x1058dafb
push 0x1058dafb
mov dword [esp + 0x128], 0
mov byte [esp + 0x12c], 1
mov dword [esp + 0x130], 0
mov dword [esp + 0x20], eax
call fcn.1050b4f0
xor edx, edx
add esp, 8
test eax, eax
mov ecx, eax
cmovle edx, eax
sub ecx, edx
cmp ecx, eax
cmovge ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
lea ecx, [edx + 0x1058dafb]
test ecx, ecx
je 0x104f13d4
cmp eax, 0x7fffffff
jne 0x104f13d4
push eax
push ecx
call fcn.1050b4f0
add esp, 8
push dword [esp + 0x18]
mov eax, dword [ebp]
lea ecx, [esp + 0x18]
push 4
push ecx
mov ecx, ebp
call dword [eax + 4]
add dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
push ebx
add eax, 0x40
push eax
push ebp
call fcn.104efac0
add esp, 0xc
jmp 0x104f15d3
mov eax, dword [ebp + 4]
lea ecx, [ebp + 4]
push 1
push 0
push 0
mov eax, dword [eax + 4]
call eax
sub eax, dword [esp + 0x28]
test ebx, ebx
mov dword [esi], eax
lea esi, [esp + 0x12c]
push closesocket
push 0x1058dafb
mov dword [esp + 0x20], 0x54415453
cmovne esi, ebx
mov dword [esp + 0x134], 0x1058dafb
mov dword [esp + 0x138], 0
mov byte [esp + 0x13c], 1
mov dword [esp + 0x140], 0
call fcn.1050b4f0
add esp, 8
mov dword [esp + 0x88], eax
lea eax, [esp + 0x84]
mov dword [esp + 0x84], 0x1058dafb
lea ecx, [esp + 0x160]
mov byte [esp + 0x8c], 1
push closesocket
push 0
push eax
call fcn.104d8fc0
mov eax, dword [ebp]
lea ecx, [esp + 0x18]
push esi
push 4
push ecx
mov ecx, ebp
call dword [eax + 4]
mov edi, dword [esp + 0x20]
lea esi, [esp + 0x13c]
add dword [esp + 0x10], eax
push closesocket
push 0x1058dafb
mov eax, dword [edi + 0x7c]
sub eax, dword [edi + 0x78]
test ebx, ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x144], 0x1058dafb
cmovne esi, ebx
mov dword [esp + 0x148], 0
mov byte [esp + 0x14c], 1
mov dword [esp + 0x150], 0
call fcn.1050b4f0
add esp, 8
mov dword [esp + 0x94], eax
lea eax, [esp + 0x90]
mov dword [esp + 0x90], 0x1058dafb
lea ecx, [esp + 0x150]
mov byte [esp + 0x98], 1
push closesocket
push 0
push eax
call fcn.104d8fc0
mov eax, dword [ebp]
lea ecx, [esp + 0x18]
push esi
push 4
push ecx
mov ecx, ebp
call dword [eax + 4]
mov ebx, dword [edi + 0x78]
lea esi, [esp + 0x38]
add dword [esp + 0x10], eax
mov edi, dword [edi + 0x7c]
mov eax, dword [esp + 0x34]
sub edi, ebx
test eax, eax
mov dword [esp + 0x38], 0x1058dafb
mov dword [esp + 0x3c], 0
mov byte [esp + 0x40], 1
cmovne esi, eax
mov dword [esp + 0x44], 0
push closesocket
push 0x1058dafb
call fcn.1050b4f0
add esp, 8
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x48]
mov dword [esp + 0x48], 0x1058dafb
lea ecx, [esp + 0x170]
mov byte [esp + 0x50], 1
push closesocket
push 0
push eax
call fcn.104d8fc0
mov eax, dword [ebp]
mov ecx, ebp
push esi
push edi
push ebx
call dword [eax + 4]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x1c]
mov dword [edi], eax
add esi, 4
add edi, 4
mov dword [esp + 0x1c], esi
add dword [esp + 0x10], eax
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x20]
inc dword [esp + 0x2c]
add dword [esp + 0x24], 4
mov ecx, dword [esp + 0x2c]
cmp ecx, dword [eax + 0x1c]
mov eax, dword [esp + 0x24]
jb 0x104f0c90
lea edi, [ebp + 4]
mov eax, dword [edi]
mov ecx, edi
push 1
push 0
push 0
mov eax, dword [eax + 4]
call eax
mov esi, dword [edi]
mov ecx, edi
push 0
push dword [esp + 0x64]
mov dword [esp + 0x3c], eax
push dword [esp + 0x6c]
mov dword [esp + 0x24], edx
call dword [esi + 4]
test ebx, ebx
mov dword [esp + 0x38], 0x1058dafb
push closesocket
lea esi, [esp + 0x3c]
mov dword [esp + 0x40], 0
push 0x1058dafb
mov byte [esp + 0x48], 1
cmovne esi, ebx
mov dword [esp + 0x4c], 0
call fcn.1050b4f0
xor edx, edx
add esp, 8
test eax, eax
mov ecx, eax
cmovle edx, eax
sub ecx, edx
cmp ecx, eax
cmovge ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
lea ecx, [edx + 0x1058dafb]
test ecx, ecx
je 0x104f169a
cmp eax, 0x7fffffff
jne 0x104f169a
push eax
push ecx
call fcn.1050b4f0
add esp, 8
mov eax, dword [ebp]
lea ecx, [esp + 0x10]
push esi
push 4
push ecx
mov ecx, ebp
call dword [eax + 4]
mov eax, dword [edi]
mov ecx, edi
push 0
push dword [esp + 0x6c]
push dword [esp + 0x60]
call dword [eax + 4]
mov eax, dword [esp + 0x30]
lea esi, [esp + 0x38]
shl eax, 2
test ebx, ebx
push closesocket
push 0x1058dafb
mov dword [esp + 0x60], eax
cmovne esi, ebx
mov dword [esp + 0x40], 0x1058dafb
mov dword [esp + 0x44], 0
mov byte [esp + 0x48], 1
mov dword [esp + 0x4c], 0
call fcn.1050b4f0
xor edx, edx
add esp, 8
test eax, eax
mov ecx, eax
cmovle edx, eax
sub ecx, edx
cmp ecx, eax
cmovge ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
lea ecx, [edx + 0x1058dafb]
test ecx, ecx
je 0x104f1730
cmp eax, 0x7fffffff
jne 0x104f1730
push eax
push ecx
call fcn.1050b4f0
add esp, 8
mov eax, dword [ebp]
lea ecx, [esp + 0x17c]
push esi
push dword [esp + 0x5c]
push ecx
mov ecx, ebp
call dword [eax + 4]
xor esi, esi
cmp dword [esp + 0x30], esi
jbe 0x104f17f8
test ebx, ebx
lea eax, [esp + 0x38]
cmovne eax, ebx
mov dword [esp + 0x58], eax
mov ebx, eax
mov ecx, dword [esp + esi*4 + 0x17c]
mov eax, dword [edi]
add ecx, 4
push 0
push 0
push ecx
mov ecx, edi
call dword [eax + 4]
push closesocket
push 0x1058dafb
mov dword [esp + 0x40], 0x1058dafb
mov dword [esp + 0x44], 0
mov byte [esp + 0x48], 1
mov dword [esp + 0x4c], 0
call fcn.1050b4f0
xor edx, edx
add esp, 8
test eax, eax
mov ecx, eax
cmovle edx, eax
sub ecx, edx
cmp ecx, eax
cmovge ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
lea ecx, [edx + 0x1058dafb]
test ecx, ecx
je 0x104f17d7
cmp eax, 0x7fffffff
jne 0x104f17d7
push eax
push ecx
call fcn.1050b4f0
add esp, 8
mov edx, dword [ebp]
lea eax, [esp + 0x1fc]
push ebx
push 4
lea eax, [eax + esi*4]
mov ecx, ebp
push eax
call dword [edx + 4]
inc esi
cmp esi, dword [esp + 0x30]
jb 0x104f1760
mov eax, dword [edi]
mov ecx, edi
push 0
push dword [esp + 0x1c]
push dword [esp + 0x3c]
call dword [eax + 4]
mov ecx, dword [esp + 0x27c]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.105116c0
add esp, 0x270
ret