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

Disassembly:
push 0xffffffffffffffff
push 0x4366ee
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x80
push ebx
push ebp
mov ebp, ecx
push esi
push edi
mov dword [esp + 0x24], ebp
mov ecx, dword [ebp + 0x2e4]
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov ecx, dword [ebp + 0x2e4]
mov edx, dword [ecx]
call dword [edx + 0x24]
mov ecx, dword [ebp + 0x2e4]
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [ebp + 0x2e4]
xor ebx, ebx
mov dword [esp + 0x10], ebx
lea eax, [esp + 0x10]
mov edx, dword [ecx]
push eax
call dword [edx + 0x10]
test eax, eax
je 0x41b521
mov ecx, dword [esp + 0x10]
cmp ecx, ebx
je 0x41b521
mov eax, dword [0x43e040]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x60], ebx
mov word [esp + 0x5c], bx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], 1
mov dword [esp + 0x8c], ebx
lea esi, [ecx + 4]
mov dword [esp + 0x98], ebx
cmp esi, ebx
jne 0x41af5e
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
xor eax, eax
jmp 0x41af67
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
push esi
call edi
push esi
push eax
lea ecx, [esp + 0x34]
call fcn.00404580
mov ecx, dword [esp + 0x10]
lea esi, [ecx + 0x210]
cmp esi, ebx
jne 0x41af84
xor eax, eax
jmp 0x41af87
push esi
call edi
push esi
push eax
lea ecx, [esp + 0x38]
call fcn.00404580
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x20c]
mov dword [esp + 0x6c], edx
mov eax, dword [eax + 0x20c]
cmp eax, ebx
jne 0x41afe5
mov eax, 0x43ea14
test eax, eax
je 0x41afba
push 0x43ea14
call edi
push 0x43ea14
push eax
lea ecx, [esp + 0x34]
call fcn.00404580
mov ecx, 0x43e9a8
test ecx, ecx
jne 0x41afd7
xor eax, eax
push ecx
jmp 0x41b027
push 0x43e9a8
call edi
push 0x43e9a8
jmp 0x41b027
cmp eax, 4
je 0x41afef
cmp eax, 8
jne 0x41b031
mov edx, 0x43e98c
test edx, edx
jne 0x41affc
xor eax, eax
jmp 0x41b003
push 0x43e98c
call edi
push 0x43e98c
push eax
lea ecx, [esp + 0x34]
call fcn.00404580
mov eax, 0x43e950
test eax, eax
je 0x41b022
push 0x43e950
call edi
push 0x43e950
push eax
lea ecx, [esp + 0x38]
call fcn.00404580
mov eax, dword [esp + 0x6c]
mov ecx, dword [ebp + 0x660]
cmp ecx, eax
jne 0x41b04a
mov dword [esp + 0x8c], 1
mov ecx, dword [esp + 0x2c]
push ecx
push eax
call fcn.00403ca0
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x18]
add esp, 8
mov dword [esp + 0x20], ebx
cmp dword [eax + 0x420], ebx
jbe 0x41b472
xor ebp, ebp
cmp dword [eax + 0x20c], ebx
jne 0x41b085
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xa8]
mov edx, dword [ecx]
inc edx
mov dword [ecx], edx
mov edx, dword [esp + 0x24]
cmp dword [edx + 0x380], ebx
jne 0x41b0c4
mov eax, dword [eax + 0x41c]
mov ecx, dword [eax + ebp + 0xb0]
push ecx
call sub.WS2_32.dll_ntohl
and eax, 0xff000000
cmp eax, 0x7f000000
je 0x41b44d
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x41c]
mov eax, dword [0x43e040]
mov dword [esp + 0x14], eax
lea esi, [edx + ebp + 8]
cmp esi, ebx
je 0x41b12e
mov ecx, esi
shr ecx, 0x10
jne 0x41b0f4
and esi, 0xffff
lea ecx, [esp + 0x14]
push esi
call fcn.00402910
jmp 0x41b12e
push esi
call edi
mov edi, eax
cmp edi, ebx
je 0x41b128
push edi
lea ecx, [esp + 0x18]
call fcn.00402b50
test eax, eax
je 0x41b128
lea ecx, [edi + edi]
lea edx, [edi + edi + 2]
cmp edx, ecx
jb 0x41b128
mov edi, dword [esp + 0x14]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
push ebx
push 0x43e62c
lea ecx, [esp + 0x1c]
mov byte [esp + 0xa0], 1
call fcn.004028d0
cmp eax, 0xffffffff
je 0x41b1e9
push eax
lea ecx, [esp + 0x1c]
push ebx
push ecx
lea ecx, [esp + 0x20]
call fcn.00402750
mov esi, eax
mov eax, dword [esi]
mov ecx, dword [esp + 0x34]
cmp ecx, eax
mov byte [esp + 0x98], 2
je 0x41b1b2
cmp dword [ecx - 0xc], ebx
jge 0x41b184
mov edx, dword [0x43e044]
add ecx, 0xfffffff4
cmp ecx, edx
jne 0x41b189
cmp dword [eax - 0xc], ebx
jge 0x41b199
mov edx, dword [eax - 8]
push eax
push edx
lea ecx, [esp + 0x3c]
call fcn.00404580
jmp 0x41b1b2
lea ecx, [esp + 0x34]
call fcn.00402c60
mov esi, dword [esi]
mov dword [esp + 0x34], esi
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [esp + 0x18]
mov edx, dword [0x43e044]
mov byte [esp + 0x98], 1
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x41b1e9
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x41b1e9
mov edx, dword [esp + 0x18]
lea eax, [edx - 0xc]
push eax
call fcn.0042329e
add esp, 4
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x41c]
lea eax, [esp + 0x38]
mov edx, dword [ecx + ebp + 0xac]
push edx
push 0x43e260
push eax
call fcn.00403e30
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [ecx + 0x41c]
lea esi, [edx + ebp + 0x48]
cmp esi, ebx
jne 0x41b223
xor eax, eax
jmp 0x41b226
push esi
call edi
push esi
push eax
lea ecx, [esp + 0x1c]
call fcn.00404580
push ebx
push 0x43e62c
lea ecx, [esp + 0x1c]
call fcn.004028d0
cmp eax, 0xffffffff
je 0x41b2e4
push eax
lea eax, [esp + 0x20]
push ebx
push eax
lea ecx, [esp + 0x20]
call fcn.00402750
mov esi, eax
mov eax, dword [esi]
mov ecx, dword [esp + 0x3c]
cmp ecx, eax
mov byte [esp + 0x98], 3
je 0x41b2ad
cmp dword [ecx - 0xc], ebx
jge 0x41b27f
mov edx, dword [0x43e044]
add ecx, 0xfffffff4
cmp ecx, edx
jne 0x41b284
cmp dword [eax - 0xc], ebx
jge 0x41b294
mov ecx, dword [eax - 8]
push eax
push ecx
lea ecx, [esp + 0x44]
call fcn.00404580
jmp 0x41b2ad
lea ecx, [esp + 0x3c]
call fcn.00402c60
mov esi, dword [esi]
mov dword [esp + 0x3c], esi
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [esp + 0x1c]
mov ecx, dword [0x43e044]
mov byte [esp + 0x98], 1
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x41b2e4
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x41b2e4
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff4
push eax
call fcn.0042329e
add esp, 4
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x41c]
lea ecx, [esp + 0x40]
mov eax, dword [edx + ebp + 0xb4]
push eax
push 0x43e260
push ecx
call fcn.00403e30
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [eax + 0x41c]
mov ecx, dword [edx + ebp]
mov dword [esp + 0x4c], ecx
mov edx, dword [eax + 0x41c]
mov eax, dword [edx + ebp + 0xa8]
push eax
call sub.WS2_32.dll_ntohl
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x41c]
mov dx, word [ecx + ebp + 0xac]
mov word [esp + 0x5c], dx
mov eax, dword [eax + 0x41c]
mov ecx, dword [eax + ebp + 0xb0]
push ecx
call sub.WS2_32.dll_ntohl
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x41c]
mov cx, word [edx + ebp + 0xb4]
mov word [esp + 0x64], cx
mov edx, dword [eax + 0x41c]
lea esi, [edx + ebp + 0x88]
cmp esi, ebx
jne 0x41b38a
xor eax, eax
jmp 0x41b38d
push esi
call edi
push esi
push eax
lea ecx, [esp + 0x4c]
call fcn.00404580
mov eax, dword [esp + 0x60]
cmp eax, ebx
je 0x41b3eb
mov ecx, eax
and ecx, 0xff000000
cmp ecx, 0x7f000000
je 0x41b3eb
mov edx, eax
and edx, 0xffff0000
cmp edx, 0xc0a80000
je 0x41b3eb
and eax, 0xfff00000
cmp eax, 0xac100000
je 0x41b3eb
cmp ecx, 0xa000000
je 0x41b3eb
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov edx, dword [esp + 0x6c]
xor ecx, ecx
cmp edx, eax
sete cl
mov dword [esp + 0x50], ecx
jmp 0x41b3f3
mov dword [esp + 0x50], 1
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0xa0]
cmp eax, ebx
je 0x41b407
mov eax, dword [ecx + 8]
jmp 0x41b40a
mov eax, dword [ecx + 4]
lea edx, [esp + 0x2c]
push edx
push 1
push eax
call fcn.0041e7f0
mov eax, dword [esp + 0x14]
mov edx, dword [0x43e044]
mov byte [esp + 0x98], bl
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x41b44d
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x41b44d
mov edx, dword [esp + 0x14]
lea eax, [edx - 0xc]
push eax
call fcn.0042329e
add esp, 4
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
inc ecx
add ebp, 0xbc
mov edx, dword [eax + 0x420]
mov dword [esp + 0x20], ecx
cmp ecx, edx
jb 0x41b072
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 0xa4]
inc dword [eax]
lea ecx, [esp + 0x48]
mov dword [esp + 0x98], 0xa
call fcn.00402b20
lea ecx, [esp + 0x44]
mov byte [esp + 0x98], 9
call fcn.00402b20
lea ecx, [esp + 0x40]
mov byte [esp + 0x98], 8
call fcn.00402b20
lea ecx, [esp + 0x3c]
mov byte [esp + 0x98], 7
call fcn.00402b20
lea ecx, [esp + 0x38]
mov byte [esp + 0x98], 6
call fcn.00402b20
lea ecx, [esp + 0x34]
mov byte [esp + 0x98], 5
call fcn.00402b20
lea ecx, [esp + 0x30]
mov byte [esp + 0x98], 4
call fcn.00402b20
lea ecx, [esp + 0x2c]
mov dword [esp + 0x98], 0xffffffff
call fcn.00402b20
mov ecx, dword [ebp + 0x2e4]
lea edx, [esp + 0x10]
push edx
mov eax, dword [ecx]
call dword [eax + 0x10]
test eax, eax
jne 0x41aec4
mov ecx, dword [ebp + 0x2e4]
mov eax, dword [ecx]
call dword [eax + 0x20]
mov ecx, dword [esp + 0x90]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x8c
ret 0xc