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

Disassembly:
sub esp, 0xa0
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0xbc]
lea esi, [esp + 0x30]
test edi, edi
mov dword [esp + 0x30], 0x1058dafb
push closesocket
push 0x1058dafb
mov dword [esp + 0x3c], 0
cmovne esi, edi
mov byte [esp + 0x40], 1
mov dword [esp + 0x44], 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 0x104d350b
cmp eax, 0x7fffffff
jne 0x104d350b
push eax
push ecx
call fcn.1050b4f0
add esp, 8
mov ebx, dword [esp + 0xb4]
mov ecx, ebx
mov ebp, dword [esp + 0xb8]
push esi
push 0x20
mov eax, dword [ebx]
push ebp
call dword [eax + 4]
xor ecx, ecx
mov word [ebp + 0x50], 0
mov esi, eax
mov dword [esp + 0x2c], ecx
cmp dword [ebp + 0x1c], ecx
jbe 0x104d3a7c
test edi, edi
lea eax, [esp + 0x30]
mov edx, ebx
cmovne eax, edi
neg edx
mov dword [esp + 0x40], eax
lea eax, [ebx + 4]
sbb edx, edx
and edx, eax
test edi, edi
lea eax, [esp + 0x50]
mov dword [esp + 0x24], edx
cmovne eax, edi
mov dword [esp + 0x48], eax
lea eax, [esp + 0x60]
cmovne eax, edi
mov dword [esp + 0x4c], eax
lea eax, [ebp + 0x84]
mov dword [esp + 0x20], eax
nop dword [eax]
mov edx, dword [edx]
lea eax, [ecx*4 + 0x20]
mov ecx, dword [esp + 0x24]
push 0
push 0
push eax
call dword [edx + 4]
push closesocket
push 0x1058dafb
mov dword [esp + 0x38], 0x1058dafb
mov dword [esp + 0x3c], 0
mov byte [esp + 0x40], 1
mov dword [esp + 0x44], 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 0x104d35f6
cmp eax, 0x7fffffff
jne 0x104d35f6
push eax
push ecx
call fcn.1050b4f0
add esp, 8
push dword [esp + 0x40]
mov eax, dword [ebx]
lea ecx, [esp + 0x48]
push 4
push ecx
mov ecx, ebx
call dword [eax + 4]
mov ecx, dword [esp + 0x24]
add esi, eax
push 0
push 0
push dword [esp + 0x4c]
mov eax, dword [ecx]
call dword [eax + 4]
push closesocket
push 0x1058dafb
mov dword [esp + 0x58], 0x1058dafb
mov dword [esp + 0x5c], 0
mov byte [esp + 0x60], 1
mov dword [esp + 0x64], 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 0x104d367c
cmp eax, 0x7fffffff
jne 0x104d367c
push eax
push ecx
call fcn.1050b4f0
add esp, 8
push dword [esp + 0x48]
mov eax, dword [ebx]
lea ecx, [esp + 0x2c]
push 4
push ecx
mov ecx, ebx
call dword [eax + 4]
mov ecx, dword [esp + 0x20]
add esi, eax
mov eax, dword [esp + 0x28]
push closesocket
push 0x1058dafb
mov dword [ecx], eax
mov dword [esp + 0x68], 0x1058dafb
mov dword [esp + 0x6c], 0
mov byte [esp + 0x70], 1
mov dword [esp + 0x74], 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 0x104d36fb
cmp eax, 0x7fffffff
jne 0x104d36fb
push eax
push ecx
call fcn.1050b4f0
add esp, 8
push dword [esp + 0x4c]
mov eax, dword [ebx]
lea ecx, [esp + 0x14]
push 4
push ecx
mov ecx, ebx
call dword [eax + 4]
add esi, eax
mov eax, dword [esp + 0x28]
cmp eax, 0x45434649
ja 0x104d38d4
je 0x104d3a47
cmp eax, 0x324f5350
ja 0x104d37f1
je 0x104d3a47
cmp eax, 0x3147534f
ja 0x104d3a47
je 0x104d39c3
cmp eax, 0x30494653
je 0x104d3768
cmp eax, 0x31475349
jne 0x104d3a47
push edi
lea eax, [ebp + 0x20]
push eax
push ebx
call fcn.104d3c40
jmp 0x104d3a5c
test edi, edi
mov dword [esp + 0x70], 0x1058dafb
lea eax, [esp + 0x70]
mov dword [esp + 0x74], 0
cmovne eax, edi
mov byte [esp + 0x78], 1
push closesocket
push 0x1058dafb
mov dword [esp + 0x84], 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 0x104d37d9
cmp eax, 0x7fffffff
jne 0x104d37d9
push eax
push ecx
call fcn.1050b4f0
add esp, 8
mov eax, dword [ebx]
mov ecx, ebx
push dword [esp + 0x14]
push 8
mov edx, dword [eax + 4]
lea eax, [ebp + 0x58]
push eax
call edx
jmp 0x104d3a5f
cmp eax, 0x42445053
ja 0x104d3a47
je 0x104d381d
cmp eax, 0x3547534f
je 0x104d39c3
cmp eax, 0x396e6f41
jne 0x104d3a47
mov byte [ebp + 0x51], 1
jmp 0x104d3a61
push dword [esp + 0x10]
lea ecx, [ebp + 0x60]
call fcn.104d72e0
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0xbc]
test edi, edi
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x60]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x80]
cmovne eax, edi
mov dword [esp + 0x80], 0x1058dafb
push closesocket
push 0x1058dafb
mov dword [esp + 0x8c], 0
mov byte [esp + 0x90], 1
mov dword [esp + 0x94], 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 0x104d38bc
cmp eax, 0x7fffffff
jne 0x104d38bc
push eax
push ecx
call fcn.1050b4f0
add esp, 8
push dword [esp + 0x14]
mov eax, dword [ebx]
mov ecx, ebx
push dword [esp + 0x1c]
push dword [esp + 0x24]
call dword [eax + 4]
jmp 0x104d3a5f
cmp eax, 0x50414e58
ja 0x104d39d3
je 0x104d3a47
cmp eax, 0x4e475349
ja 0x104d39b8
je 0x104d3758
cmp eax, 0x46454452
jne 0x104d3a47
push dword [esp + 0x10]
lea ecx, [ebp + 0x6c]
call fcn.104d72e0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x6c]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x90]
mov dword [esp + 0x90], 0x1058dafb
mov dword [esp + 0x94], 0
mov byte [esp + 0x98], 1
mov dword [esp + 0x9c], 0
mov edi, dword [esp + 0xbc]
test edi, edi
push closesocket
cmovne eax, edi
push 0x1058dafb
mov dword [esp + 0x24], 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 0x104d39a0
cmp eax, 0x7fffffff
jne 0x104d39a0
push eax
push ecx
call fcn.1050b4f0
add esp, 8
push dword [esp + 0x1c]
mov eax, dword [ebx]
mov ecx, ebx
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call dword [eax + 4]
jmp 0x104d3a5f
cmp eax, 0x4e47534f
jne 0x104d3a47
push edi
lea eax, [ebp + 0x30]
push eax
push ebx
call fcn.104d3c40
jmp 0x104d3a5c
cmp eax, 0x54415453
ja 0x104d3a40
je 0x104d39f0
cmp eax, 0x52444853
je 0x104d3a51
cmp eax, 0x53414e58
jne 0x104d3a47
add esi, dword [esp + 0x10]
jmp 0x104d3a61
push dword [esp + 0x10]
lea ecx, [ebp + 0x78]
call fcn.104d72e0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x78]
mov dword [esp + 0x14], eax
lea eax, [esp + 0xa0]
mov dword [esp + 0xa0], 0x1058dafb
mov dword [esp + 0xa4], 0
mov byte [esp + 0xa8], 1
mov dword [esp + 0xac], 0
jmp 0x104d394c
cmp eax, 0x58454853
je 0x104d3a4d
add esi, dword [esp + 0x10]
jmp 0x104d3a61
mov byte [ebp + 0x50], 1
push edi
lea eax, [ebp + 0x40]
push eax
push ebx
call fcn.104d3a90
add esp, 0xc
add esi, eax
mov ecx, dword [esp + 0x2c]
add dword [esp + 0x20], 4
inc ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x2c], ecx
cmp ecx, dword [ebp + 0x1c]
jb 0x104d3580
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0xa0
ret