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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x584f38
push eax
mov dword fs:[0], esp
sub esp, 0x4c
push ebx
mov ebx, ecx
push ebp
push esi
mov eax, dword [ebx + 0x74]
xor esi, esi
push edi
mov ecx, dword [eax + 0x4a0c]
mov dword [ebx + 0xa5c], esi
cmp ecx, esi
jne 0x51a6f1
mov ecx, dword [ebx + 0x99c]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push esi
push esi
push 0x1009
push ecx
call edi
mov edx, dword [ebx + 0x99c]
push esi
push esi
push 0xb
push edx
call edi
mov ebp, dword [0x5ed74c]
xor ecx, ecx
inc ebp
mov dword [esp + 0x1c], ecx
mov dword [0x5ed74c], ebp
mov eax, dword [ebx + 0xbc]
cmp eax, esi
jle 0x51a597
mov eax, dword [ebx + 0xc0]
mov ebp, dword [eax + ecx*4]
cmp ebp, esi
mov dword [esp + 0x20], ebp
je 0x51a56e
lea esi, [ebp + 0x104]
mov edi, 0x5ed678
mov cl, byte [esi]
mov dl, byte [edi]
mov al, cl
cmp cl, dl
jne 0x51a233
test al, al
je 0x51a22f
mov dl, byte [esi + 1]
mov cl, byte [edi + 1]
mov al, dl
cmp dl, cl
jne 0x51a233
add esi, 2
add edi, 2
test al, al
jne 0x51a20b
xor eax, eax
jmp 0x51a238
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x51a56c
mov edi, 0x5ed678
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
lea edi, [ebp + 0x104]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x5e8e38]
mov dword [esp + 0x14], ecx
mov ecx, dword [ebx + 0x74]
mov dword [esp + 0x64], 0
test ecx, ecx
je 0x51a2ad
mov esi, dword [ebp + 0x64]
xor edx, edx
mov eax, esi
shr eax, 4
div dword [ecx + 0x5bc4]
mov ecx, dword [ecx + 0x5bc0]
test ecx, ecx
je 0x51a2ad
mov eax, dword [ecx + edx*4]
test eax, eax
je 0x51a2ad
cmp dword [eax + 8], esi
je 0x51a353
mov eax, dword [eax]
test eax, eax
jne 0x51a29e
mov edx, dword [ebp + 0x64]
lea eax, [esp + 0x24]
lea ecx, [esp + 0x38]
push eax
push ecx
push 0
push edx
mov dword [esp + 0x34], 6
call sub.iphlpapi.dll_SendARP
test eax, eax
jne 0x51a3f1
xor ebp, ebp
mov eax, dword [0x5e8e38]
mov dword [esp + 0x6c], eax
xor ecx, ecx
lea edx, [esp + 0x6c]
mov cl, byte [esp + ebp + 0x38]
mov byte [esp + 0x64], 3
push ecx
push str._.2x
push edx
call fcn.00554dd4
add esp, 0xc
lea ecx, [esp + 0x6c]
call fcn.00559b2e
mov edi, dword [esp + 0x6c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x20]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
lea edi, [eax + 0x104]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov byte [esp + 0x64], al
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x6c]
call fcn.0055962c
inc ebp
cmp ebp, 6
jl 0x51a2d4
mov ebp, dword [esp + 0x20]
jmp 0x51a4ba
test eax, eax
je 0x51a2ad
add eax, 0xc
lea ecx, [esp + 0x14]
push eax
call fcn.00559765
mov eax, dword [ebx + 0x74]
test eax, eax
je 0x51a376
add eax, 0x528c
jmp 0x51a37b
mov eax, 0x5d6a88
push ecx
mov ecx, esp
mov dword [esp + 0x70], esp
push eax
call fcn.0055969a
push ecx
lea edx, [ebp + 0x32]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
mov byte [esp + 0x70], 1
call fcn.0055969a
push ecx
mov byte [esp + 0x70], 2
mov ecx, esp
mov dword [esp + 0x3c], esp
push ebp
call fcn.0055969a
mov eax, dword [ebp + 0x64]
lea ecx, [esp + 0x34]
push eax
push ecx
mov byte [esp + 0x78], 0
call fcn.004401d0
mov edi, dword [eax]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x14
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
lea edi, [ebp + 0x104]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x28]
jmp 0x51a4b5
mov edi, 0x5ed678
lea esi, [ebp + 0x104]
mov cl, byte [esi]
mov dl, byte [edi]
mov al, cl
cmp cl, dl
jne 0x51a424
test al, al
je 0x51a420
mov dl, byte [esi + 1]
mov cl, byte [edi + 1]
mov al, dl
cmp dl, cl
jne 0x51a424
add esi, 2
add edi, 2
test al, al
jne 0x51a3fc
xor eax, eax
jmp 0x51a429
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x51a4ba
mov eax, dword [ebx + 0x74]
test eax, eax
je 0x51a43f
add eax, 0x528c
jmp 0x51a444
mov eax, 0x5d6a88
push ecx
mov ecx, esp
mov dword [esp + 0x70], esp
push eax
call fcn.0055969a
push ecx
lea eax, [ebp + 0x32]
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
mov byte [esp + 0x70], 4
call fcn.0055969a
push ecx
mov byte [esp + 0x70], 5
mov ecx, esp
mov dword [esp + 0x3c], esp
push ebp
call fcn.0055969a
mov ecx, dword [ebp + 0x64]
lea edx, [esp + 0x24]
push ecx
push edx
mov byte [esp + 0x78], 0
call fcn.004401d0
mov edi, dword [eax]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x14
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
lea edi, [ebp + 0x104]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.0055962c
mov eax, dword [ebx + 0x74]
test eax, eax
je 0x51a55b
mov ecx, dword [0x5e8e38]
mov dword [esp + 0x6c], ecx
lea edx, [esp + 0x6c]
lea esi, [ebp + 0x104]
push edx
push esi
lea ecx, [eax + 0x5b08]
mov byte [esp + 0x6c], 6
call fcn.00558287
test eax, eax
je 0x51a502
mov eax, dword [esp + 0x6c]
push 0x32
lea ecx, [ebp + 0x6c]
push eax
push ecx
call fcn.00438200
add esp, 0xc
mov edx, dword [0x5e8e38]
mov dword [esp + 0x10], edx
mov ecx, dword [ebx + 0x74]
lea eax, [esp + 0x10]
push eax
push esi
add ecx, 0x5aec
mov byte [esp + 0x6c], 7
call fcn.00558287
test eax, eax
je 0x51a53f
mov ecx, dword [esp + 0x10]
push 0x32
lea edx, [ebp + 0x520]
push ecx
push edx
call fcn.00438200
add esp, 0xc
lea ecx, [esp + 0x10]
mov byte [esp + 0x64], 6
call fcn.0055962c
lea ecx, [esp + 0x6c]
mov byte [esp + 0x64], 0
call fcn.0055962c
lea ecx, [esp + 0x14]
mov dword [esp + 0x64], 0xffffffff
call fcn.0055962c
xor esi, esi
push 1
push esi
push esi
push ebp
mov ecx, ebx
call fcn.00509630
mov ecx, dword [esp + 0x1c]
mov eax, dword [ebx + 0xbc]
inc ecx
cmp ecx, eax
mov dword [esp + 0x1c], ecx
jl 0x51a1eb
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [ebx + 0x99c]
push esi
push 1
push 0xb
push eax
call edi
mov ecx, dword [ebx + 0x74]
cmp dword [ecx + 0x1ac], esi
je 0x51a5c1
push esi
lea ecx, [ebx + 0x980]
call fcn.004818e0
jmp 0x51abab
mov dword [esp + 0x48], method.CGopherLocator.virtual_0
mov dword [esp + 0x4c], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x50], esi
push 0xffffffffffffffff
push esi
lea ecx, [esp + 0x50]
mov dword [esp + 0x6c], 8
call fcn.0051ba80
mov eax, dword [esp + 0x50]
mov edx, dword [ebx + 0x74]
mov ebp, eax
inc eax
mov edi, dword [edx + 0x5a2c]
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x50]
call fcn.0051ba80
mov eax, dword [esp + 0x4c]
push 0xffffffffffffffff
mov dword [eax + ebp*4], edi
mov eax, dword [esp + 0x54]
mov ecx, dword [ebx + 0x74]
mov ebp, eax
inc eax
mov edi, dword [ecx + 0x5a38]
push eax
lea ecx, [esp + 0x50]
call fcn.0051ba80
mov edx, dword [esp + 0x4c]
push 0xffffffffffffffff
lea ecx, [esp + 0x4c]
mov dword [edx + ebp*4], edi
mov eax, dword [ebx + 0x74]
mov edi, dword [eax + 0x5a44]
mov eax, dword [esp + 0x54]
mov ebp, eax
inc eax
push eax
call fcn.0051ba80
mov ecx, dword [esp + 0x4c]
push 0xffffffffffffffff
mov dword [ecx + ebp*4], edi
mov eax, dword [esp + 0x54]
mov edx, dword [ebx + 0x74]
mov ebp, eax
inc eax
lea ecx, [esp + 0x4c]
mov edi, dword [edx + 0x5a34]
push eax
call fcn.0051ba80
mov eax, dword [esp + 0x4c]
push 0xffffffffffffffff
mov dword [eax + ebp*4], edi
mov eax, dword [esp + 0x54]
mov ecx, dword [ebx + 0x74]
mov ebp, eax
inc eax
mov edi, dword [ecx + 0x5a3c]
push eax
lea ecx, [esp + 0x50]
call fcn.0051ba80
mov edx, dword [esp + 0x4c]
push 0xffffffffffffffff
lea ecx, [esp + 0x4c]
mov dword [edx + ebp*4], edi
mov eax, dword [ebx + 0x74]
mov edi, dword [eax + 0x5a40]
mov eax, dword [esp + 0x54]
mov ebp, eax
inc eax
push eax
call fcn.0051ba80
mov ecx, dword [esp + 0x4c]
lea edx, [esp + 0x48]
push edx
mov dword [ecx + ebp*4], edi
lea ecx, [ebx + 0x980]
call fcn.00481c00
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x48], 0x589960
cmp eax, esi
je 0x51abab
push eax
call fcn.00558a4c
add esp, 4
jmp 0x51abab
push 1
lea ecx, [ebx + 0x570]
call fcn.0049edc0
mov eax, dword [ebx + 0x58c]
push esi
push esi
push 0xb
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [0x5ed74c]
mov dword [esp + 0x20], esi
inc ecx
mov dword [0x5ed74c], ecx
mov eax, dword [ebx + 0xbc]
cmp eax, esi
jle 0x51ab98
mov ecx, dword [ebx + 0xc0]
mov edx, dword [esp + 0x20]
mov ebp, dword [ecx + edx*4]
test ebp, ebp
mov dword [esp + 0x24], ebp
je 0x51aac0
lea esi, [ebp + 0x104]
mov edi, 0x5ed678
mov cl, byte [esi]
mov dl, byte [edi]
mov al, cl
cmp cl, dl
jne 0x51a77a
test al, al
je 0x51a776
mov dl, byte [esi + 1]
mov cl, byte [edi + 1]
mov al, dl
cmp dl, cl
jne 0x51a77a
add esi, 2
add edi, 2
test al, al
jne 0x51a752
xor eax, eax
jmp 0x51a77f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x51aac0
mov edi, 0x5ed678
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
lea edi, [ebp + 0x104]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x5e8e38]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebx + 0x74]
mov dword [esp + 0x64], 9
test ecx, ecx
je 0x51a7f4
mov esi, dword [ebp + 0x64]
xor edx, edx
mov eax, esi
shr eax, 4
div dword [ecx + 0x5bc4]
mov ecx, dword [ecx + 0x5bc0]
test ecx, ecx
je 0x51a7f4
mov eax, dword [ecx + edx*4]
test eax, eax
je 0x51a7f4
cmp dword [eax + 8], esi
je 0x51a89b
mov eax, dword [eax]
test eax, eax
jne 0x51a7e5
mov edx, dword [ebp + 0x64]
lea eax, [esp + 0x30]
lea ecx, [esp + 0x40]
push eax
push ecx
push 0
push edx
mov dword [esp + 0x40], 6
call sub.iphlpapi.dll_SendARP
test eax, eax
jne 0x51a939
xor ebp, ebp
mov eax, dword [0x5e8e38]
mov dword [esp + 0x10], eax
xor ecx, ecx
lea edx, [esp + 0x10]
mov cl, byte [esp + ebp + 0x40]
mov byte [esp + 0x64], 0xc
push ecx
push str._.2x
push edx
call fcn.00554dd4
add esp, 0xc
lea ecx, [esp + 0x10]
call fcn.00559b2e
mov edi, dword [esp + 0x10]
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x64], 9
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x24]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
lea edi, [eax + 0x104]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x10]
call fcn.0055962c
inc ebp
cmp ebp, 6
jl 0x51a81b
mov ebp, dword [esp + 0x24]
jmp 0x51aa02
test eax, eax
je 0x51a7f4
add eax, 0xc
lea ecx, [esp + 0x28]
push eax
call fcn.00559765
mov eax, dword [ebx + 0x74]
test eax, eax
je 0x51a8be
add eax, 0x528c
jmp 0x51a8c3
mov eax, 0x5d6a88
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
call fcn.0055969a
push ecx
lea edx, [ebp + 0x32]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
mov byte [esp + 0x70], 0xa
call fcn.0055969a
push ecx
mov byte [esp + 0x70], 0xb
mov ecx, esp
mov dword [esp + 0x1c], esp
push ebp
call fcn.0055969a
mov eax, dword [ebp + 0x64]
lea ecx, [esp + 0x38]
push eax
push ecx
mov byte [esp + 0x78], 9
call fcn.004401d0
mov edi, dword [eax]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x14
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
lea edi, [ebp + 0x104]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x2c]
jmp 0x51a9fd
mov edi, 0x5ed678
lea esi, [ebp + 0x104]
mov cl, byte [esi]
mov dl, byte [edi]
mov al, cl
cmp cl, dl
jne 0x51a96c
test al, al
je 0x51a968
mov dl, byte [esi + 1]
mov cl, byte [edi + 1]
mov al, dl
cmp dl, cl
jne 0x51a96c
add esi, 2
add edi, 2
test al, al
jne 0x51a944
xor eax, eax
jmp 0x51a971
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x51aa02
mov eax, dword [ebx + 0x74]
test eax, eax
je 0x51a987
add eax, 0x528c
jmp 0x51a98c
mov eax, 0x5d6a88
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push eax
call fcn.0055969a
push ecx
lea eax, [ebp + 0x32]
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
mov byte [esp + 0x70], 0xd
call fcn.0055969a
push ecx
mov byte [esp + 0x70], 0xe
mov ecx, esp
mov dword [esp + 0x44], esp
push ebp
call fcn.0055969a
mov ecx, dword [ebp + 0x64]
lea edx, [esp + 0x40]
push ecx
push edx
mov byte [esp + 0x78], 9
call fcn.004401d0
mov edi, dword [eax]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x14
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
lea edi, [ebp + 0x104]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x34]
call fcn.0055962c
mov eax, dword [ebx + 0x74]
test eax, eax
je 0x51aaaf
mov ecx, dword [esp + 0x6c]
test ecx, ecx
jne 0x51aaaf
mov ecx, dword [0x5e8e38]
mov dword [esp + 0x10], ecx
lea edx, [esp + 0x10]
lea esi, [ebp + 0x104]
push edx
push esi
lea ecx, [eax + 0x5b08]
mov byte [esp + 0x6c], 0xf
call fcn.00558287
test eax, eax
je 0x51aa56
mov eax, dword [esp + 0x10]
push 0x32
lea ecx, [ebp + 0x6c]
push eax
push ecx
call fcn.00438200
add esp, 0xc
mov edx, dword [0x5e8e38]
mov dword [esp + 0x14], edx
mov ecx, dword [ebx + 0x74]
lea eax, [esp + 0x14]
push eax
push esi
add ecx, 0x5aec
mov byte [esp + 0x6c], 0x10
call fcn.00558287
test eax, eax
je 0x51aa93
mov ecx, dword [esp + 0x14]
push 0x32
lea edx, [ebp + 0x520]
push ecx
push edx
call fcn.00438200
add esp, 0xc
lea ecx, [esp + 0x14]
mov byte [esp + 0x64], 0xf
call fcn.0055962c
lea ecx, [esp + 0x10]
mov byte [esp + 0x64], 9
call fcn.0055962c
lea ecx, [esp + 0x28]
mov dword [esp + 0x64], 0xffffffff
call fcn.0055962c
mov eax, dword [ebx + 0x74]
test eax, eax
je 0x51ab73
mov ecx, dword [esp + 0x6c]
test ecx, ecx
je 0x51ab73
mov ecx, dword [0x5e8e38]
mov dword [esp + 0x1c], ecx
lea edx, [esp + 0x1c]
lea esi, [ebp + 0x104]
push edx
push esi
lea ecx, [eax + 0x5b08]
mov dword [esp + 0x6c], 0x11
call fcn.00558287
test eax, eax
je 0x51ab17
mov eax, dword [esp + 0x1c]
push 0x32
lea ecx, [ebp + 0x6c]
push eax
push ecx
call fcn.00438200
add esp, 0xc
mov edx, dword [0x5e8e38]
mov dword [esp + 0x18], edx
mov ecx, dword [ebx + 0x74]
lea eax, [esp + 0x18]
push eax
push esi
add ecx, 0x5aec
mov byte [esp + 0x6c], 0x12
call fcn.00558287
test eax, eax
je 0x51ab54
mov ecx, dword [esp + 0x18]
push 0x32
lea edx, [ebp + 0x520]
push ecx
push edx
call fcn.00438200
add esp, 0xc
lea ecx, [esp + 0x18]
mov byte [esp + 0x64], 0x11
call fcn.0055962c
lea ecx, [esp + 0x1c]
mov dword [esp + 0x64], 0xffffffff
call fcn.0055962c
push 1
push 0
push 0
push ebp
mov ecx, ebx
call fcn.00509630
mov eax, dword [esp + 0x20]
mov ecx, dword [ebx + 0xbc]
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x51a72e
mov eax, dword [ebx + 0x58c]
push 0
push 1
push 0xb
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [0x5ed74c]
mov ecx, dword [esp + 0x5c]
dec eax
pop edi
mov dword [0x5ed74c], eax
pop esi
mov dword [ebx + 0xa5c], 1
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x58
ret 4