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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov ebx, dword [0x860948]
mov dword [esp + 0x20], eax
mov eax, dword [0x860944]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x28], ecx
mov esi, dword [esp + 0x70]
mov ebp, dword [esp + 0x74]
test eax, eax
mov dword [esp + 0x44], edx
jne 0x5d4834
mov edi, dword [0x86099c]
mov ecx, dword [0x8672d0]
test edi, edi
jne 0x5d49f0
xor edx, edx
sub ebx, edx
cmp ebx, ecx
je 0x5d4a0d
test esi, esi
jle 0x5d4be5
mov eax, dword [esp + 0x20]
movzx edx, byte [eax]
test dl, dl
je 0x5d4be5
mov ebx, dword [esp + 0x24]
cmp dl, byte [ebx]
jne 0x5d4c1c
mov edi, dword [esp + 0x20]
mov dword [esp + 0x1c], ebp
jmp 0x5d4612
movzx edx, byte [eax]
test dl, dl
je 0x5d4622
cmp dl, byte [ebx]
jne 0x5d4aa4
add eax, 1
add ebx, 1
mov ecx, eax
mov ebp, eax
sub ecx, edi
cmp ecx, esi
jl 0x5d4603
mov dword [esp + 0x40], ebp
mov ebp, dword [esp + 0x1c]
mov edx, ebx
sub edx, dword [esp + 0x24]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], ebx
mov edi, eax
mov ecx, 1
cmp ebp, edx
mov esi, ebx
jle 0x5d4a94
cmp byte [ebx], 0
jne 0x5d4658
jmp 0x5d4a94
cmp byte [esi], 0
je 0x5d4662
add edx, 1
add esi, 1
cmp edx, ebp
jne 0x5d4653
cmp esi, ebx
sete dl
test dl, dl
jne 0x5d4a94
lea ecx, [esi - 1]
lea edx, [edi - 1]
cmp ecx, ebx
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], ecx
jbe 0x5d49e0
cmp eax, edx
jae 0x5d49e0
movzx ecx, byte [edi - 1]
mov ebp, esi
mov edx, edi
cmp cl, byte [esi - 1]
jne 0x5d4718
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
mov eax, 1
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x34], 1
jmp 0x5d46d2
cmp dword [esp + 0x1c], edx
jae 0x5d46e7
movzx ecx, byte [edx]
cmp cl, byte [ebp]
jne 0x5d46e7
mov edi, ebp
mov esi, edx
cmp cl, 0x20
mov edx, 0
lea ebp, [edi - 1]
cmovne eax, edx
cmp ebp, ebx
lea edx, [esi - 1]
ja 0x5d46c0
test eax, eax
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x48]
jne 0x5d49e0
movzx eax, byte [edx]
movzx ecx, byte [ebp]
cmp al, cl
je 0x5d4718
test al, al
cmovne edx, dword [esp + 0x30]
test cl, cl
cmovne ebp, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
xor ecx, ecx
test eax, eax
mov eax, dword [esp + 0x28]
cmove ecx, dword [0x860990]
cmp dword [0x860944], eax
je 0x5d4850
mov dword [esp], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], ecx
call fcn.005d3eb0
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
test eax, eax
je 0x5d4ae0
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.005d3da0
mov edx, dword [esp + 0x18]
sub ebp, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x40]
sub ebp, edx
add ebp, dword [esp + 0x1c]
mov eax, esi
sub eax, dword [esp + 0x38]
test ebp, ebp
mov dword [esp + 0x2c], eax
jle 0x5d4996
mov esi, dword [0x860940]
xor edi, edi
cmp dword [esp + 0x28], esi
jl 0x5d47bc
xor eax, eax
cmp esi, dword [esp + 0x44]
setl al
mov edi, eax
mov eax, dword [0x860a84]
test eax, eax
je 0x5d4812
mov esi, dword [esp + 0x2c]
add esi, esi
cmp ebp, esi
jg 0x5d4b10
test edi, edi
jne 0x5d4b40
cmp byte [edx], 0
je 0x5d4b5e
mov eax, dword [0x8607cc]
test eax, eax
je 0x5d4b52
mov eax, dword [0x860948]
test eax, eax
jne 0x5d4b52
cmp ebp, dword [0x860974]
jle 0x5d4b52
test ecx, ecx
jle 0x5d4b52
mov edx, dword [esp + 0x2c]
mov dword [esp], ebx
mov dword [esp + 4], edx
call fcn.005d7060
mov ecx, dword [esp + 0x2c]
add dword [0x860948], ecx
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp eax, dword [0x860994]
je 0x5d4b28
mov ecx, dword [0x8672d0]
jmp 0x5d45ca
mov eax, dword [0x860964]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x5d475b
mov eax, dword [0x8607cc]
test eax, eax
jne 0x5d4930
mov eax, dword [0x867310]
test eax, eax
mov dword [esp + 0x30], eax
je 0x5d4930
mov eax, dword [esp + 0x1c]
cmp dword [0x860974], eax
jge 0x5d4930
mov eax, dword [0x860948]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x1c], eax
jg 0x5d4930
mov eax, dword [esp + 0x2c]
test eax, eax
jle 0x5d4930
mov eax, dword [esp + 0x2c]
cmp eax, dword [0x86096c]
jg 0x5d4930
mov eax, dword [esp + 0x30]
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 8], 0x5d6730
mov dword [esp + 4], 1
mov dword [esp], eax
call fcn.004518f0
mov edx, dword [0x860988]
mov ecx, dword [esp + 0x14]
test edx, edx
mov edx, dword [esp + 0x18]
jne 0x5d4c4d
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 4], eax
mov eax, dword [0x86095c]
mov dword [esp], eax
call fcn.005d7060
mov eax, dword [esp + 0x1c]
add eax, dword [0x860988]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [0x860948], eax
lea esi, [esi]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.005d3da0
mov edx, dword [esp + 0x18]
sub ebp, dword [esp + 0x38]
mov eax, dword [0x8607cc]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x40]
sub ebp, edx
add ebp, dword [esp + 0x1c]
test eax, eax
jne 0x5d4791
mov eax, dword [0x86099c]
cmp ecx, eax
je 0x5d4791
sub eax, ecx
add ebp, eax
mov eax, esi
sub eax, dword [esp + 0x38]
test ebp, ebp
mov dword [esp + 0x2c], eax
jg 0x5d47a3
mov eax, dword [0x867304]
test eax, eax
je 0x5d4b97
mov edx, dword [esp + 0x2c]
neg ebp
add edx, edx
cmp edx, ebp
jl 0x5d4b97
mov esi, dword [esp + 0x1c]
test esi, esi
jle 0x5d482c
mov eax, dword [esp + 0x1c]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.005d7060
mov edx, dword [esp + 0x1c]
add dword [0x860948], edx
jmp 0x5d482c
mov ebp, esi
mov edx, edi
jmp 0x5d4718
mov edx, dword [0x860968]
cmp dword [0x860970], ecx
cmovle edx, dword [0x860990]
sub ebx, edx
cmp ebx, ecx
jne 0x5d45d6
mov ecx, dword [0x6a98fc]
test ecx, ecx
je 0x5d45d6
mov edx, dword [0x8607cc]
test edx, edx
jne 0x5d45d6
mov edx, dword [esp + 0x28]
sub edx, 1
cmp eax, edx
jne 0x5d45d6
mov edx, dword [esp + 0x24]
movzx eax, byte [edx]
test al, al
je 0x5d4c33
mov edx, dword [0x8607f4]
movsx eax, al
mov dword [esp], eax
mov dword [esp + 4], edx
call sub.msvcrt.dll_putc
mov eax, dword [esp + 0x20]
add dword [0x860944], 1
mov dword [0x860948], 1
cmp byte [eax], 0
je 0x5d45d6
mov edx, dword [esp + 0x24]
movzx eax, byte [edx]
test al, al
je 0x5d45d6
mov ecx, dword [esp + 0x20]
mov byte [ecx], al
jmp 0x5d45d6
test cl, cl
je 0x5d466f
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebp, dword [esp + 0x1c]
mov edx, ebx
sub edx, dword [esp + 0x24]
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], ebx
mov ecx, dword [esp + 0x3c]
mov edi, eax
jmp 0x5d4ac7
cmp byte [edi], 0
je 0x5d4ad1
add ecx, 1
add edi, 1
cmp esi, ecx
jg 0x5d4ac2
cmp eax, edi
sete cl
jmp 0x5d463f
mov eax, dword [0x86099c]
test eax, eax
je 0x5d4aef
add dword [0x860948], eax
mov eax, dword [0x860964]
mov dword [esp + 0x1c], eax
mov eax, dword [0x8607cc]
test eax, eax
jne 0x5d4930
jmp 0x5d4872
mov eax, dword [0x8672dc]
test eax, eax
je 0x5d4812
test edi, edi
nop
je 0x5d47db
jmp 0x5d4b40
mov edx, dword [0x860990]
sub edx, dword [0x860968]
mov ecx, dword [0x8672d0]
jmp 0x5d45cc
mov eax, dword [0x6a98fc]
test eax, eax
je 0x5d47db
jmp 0x5d4812
cmp ecx, dword [0x86099c]
jg 0x5d4812
mov dword [esp + 4], ebp
mov dword [esp], ebx
call fcn.005d7060
mov esi, dword [esp + 0x1c]
add dword [0x860948], ebp
sub esi, ebp
test esi, esi
jle 0x5d482c
add ebx, ebp
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.005d7060
add dword [0x860948], esi
jmp 0x5d482c
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jle 0x5d4bb9
mov ecx, dword [esp + 0x2c]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.005d7060
mov eax, dword [esp + 0x2c]
add dword [0x860948], eax
mov eax, dword [esp + 0x24]
sub edi, dword [esp + 0x20]
sub eax, esi
add eax, edi
je 0x5d482c
mov edx, dword [esp + 0x44]
cmp dword [esp + 0x28], edx
jl 0x5d4c06
mov dword [esp + 0x70], eax
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.005d4540
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], edx
mov ebx, edx
xor edx, edx
mov dword [esp + 0x40], eax
jmp 0x5d4638
mov edx, dword [0x6a98fc]
test edx, edx
je 0x5d4bd5
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.005d3660
mov dword [esp + 0x38], ebx
xor edx, edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], 0
jmp 0x5d4aba
mov eax, dword [0x8607f4]
mov dword [esp], 0x20
mov dword [esp + 4], eax
call sub.msvcrt.dll_putc
jmp 0x5d4a5c
mov dword [esp + 4], 1
mov dword [esp], 0x7417d9
call fcn.005d7060
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
jmp 0x5d48f8