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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x88
mov eax, edx
mov edx, dword [ebp + 0xc]
lea esi, [esp + 0x40]
mov dword [esp + 0x18], ecx
mov ecx, esi
push dword [ebp + 8]
push eax
push dword [ebp + 0x10]
call fcn.0045ed30
add esp, 0xc
cmp dword [esi], 0
je 0x51704f
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x70]
xor ebx, ebx
mov edx, eax
mov dword [esp + 0x28], ecx
mov dword [esp + 8], eax
dec eax
mov dword [esp + 0x14], esi
sub edx, ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x24], edx
mov edx, esi
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 4], ecx
cmp ecx, edx
mov ecx, edx
cmova ecx, dword [esp + 4]
cmp esi, 0xffffffff
cmove edx, ebx
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x10]
cmove ecx, dword [esp + 4]
mov dword [esp + 0x1c], ecx
lea ecx, [edx + eax]
cmp ecx, dword [esp + 0xc]
jae 0x5170dc
mov cl, byte [edi + ecx]
xor esi, esi
xor ebx, ebx
inc ebx
shld esi, ebx, cl
shl ebx, cl
test cl, 0x20
mov ecx, 0
cmovne esi, ebx
cmovne ebx, ecx
and esi, dword [esp + 0x2c]
and ebx, dword [esp + 0x30]
or ebx, esi
je 0x516fd1
mov esi, dword [esp + 0x1c]
mov edx, edi
lea ecx, [edi + eax]
cmp esi, dword [esp + 8]
jae 0x516fe9
lea ebx, [eax + esi]
cmp ebx, dword [esp + 0xc]
jae 0x517184
mov edi, eax
mov eax, dword [esp + 0x20]
mov al, byte [eax + esi]
cmp al, byte [ecx + esi]
mov eax, edi
lea esi, [esi + 1]
je 0x516f98
sub ebx, dword [esp + 4]
mov esi, dword [esp + 0x14]
mov edi, edx
mov edx, dword [esp + 0x10]
mov eax, ebx
inc eax
jmp 0x516fd9
mov esi, dword [esp + 0x14]
add eax, dword [esp + 8]
cmp esi, 0xffffffff
mov ebx, 0
je 0x516f5b
jmp 0x517044
mov ecx, dword [esp + 4]
cmp dword [esp + 0x34], ecx
jae 0x5170ea
dec ecx
cmp ecx, dword [esp + 8]
jae 0x51719d
lea esi, [ecx + eax]
cmp esi, dword [esp + 0xc]
jae 0x5171ab
mov edi, dword [esp + 0x20]
mov bl, byte [edi + ecx]
cmp bl, byte [edx + esi]
je 0x516fed
mov esi, dword [esp + 0x14]
mov edi, edx
add eax, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov ebx, 0
cmp esi, 0xffffffff
je 0x516f5b
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 4]
jmp 0x516f3b
mov ecx, dword [esp + 4]
xor edx, edx
jmp 0x516f3b
mov al, byte [esp + 0x4e]
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x74]
mov bl, byte [esp + 0x4c]
mov byte [esp + 0xc], al
mov dword [esp + 8], edx
cmp byte [esp + 0xc], 0
jne 0x5170dc
mov edx, dword [esp + 8]
mov edi, ecx
push esi
call fcn.00419409
pop ecx
test eax, eax
je 0x5171bb
lea ecx, [esp + 0x38]
add edx, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
call fcn.005deed5
test eax, eax
mov ecx, 0x110000
cmove edx, ecx
test bl, bl
jne 0x5170e8
cmp edx, 0x110000
je 0x5170dc
cmp edx, 0x80
mov eax, 1
jb 0x5170d4
cmp edx, 0x800
push 2
pop eax
jb 0x5170d4
cmp edx, 0x10000
push 4
pop eax
sbb eax, 0
add edi, eax
mov bl, 1
mov ecx, edi
jmp 0x51706b
mov eax, dword [esp + 0x18]
and dword [eax], 0
jmp 0x51717c
mov eax, edi
mov edi, dword [ebp + 0x10]
add eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov edx, edi
push 0x764d44
push eax
mov ebx, eax
call fcn.00419492
pop ecx
pop ecx
mov ecx, eax
call fcn.00516db2
mov esi, edx
mov edx, edi
add esi, ebx
test eax, eax
mov eax, ebx
cmove esi, edi
mov edi, esi
sub edi, ebx
jb 0x517148
test eax, eax
je 0x517135
cmp eax, edx
jae 0x517133
mov eax, dword [ebp + 0xc]
cmp byte [eax + ebx], 0xc0
mov eax, ebx
jge 0x517135
jmp 0x517148
jne 0x517148
test esi, esi
je 0x517159
cmp esi, edx
jae 0x517157
mov eax, dword [ebp + 0xc]
cmp byte [eax + esi], 0xbf
mov eax, ebx
jg 0x517159
mov ecx, dword [ebp + 0xc]
push 0x764d54
push esi
push eax
call fcn.0062d9d0
jne 0x517148
mov ecx, dword [ebp + 0xc]
add eax, ecx
push 0x764d64
push esi
mov esi, eax
call fcn.00419492
pop ecx
pop ecx
mov ecx, dword [esp + 0x18]
mov dword [ecx], esi
mov dword [ecx + 4], edi
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xc]
add ecx, eax
cmp edx, ecx
cmova ecx, edx
push 0x7881dc
call fcn.0062d3f0
mov edx, dword [esp + 8]
push 0x7881bc
call fcn.0062d3f0
mov edx, dword [esp + 0xc]
mov ecx, esi
push 0x7881cc
call fcn.0062d3f0
mov ecx, dword [esp + 8]
mov edx, esi
push 0x7883cc
push esi
push edi
call fcn.0062d9d0