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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x14]
cmp eax, dword [ecx + 8]
jbe 0x58454d
sub esp, 0x94
mov eax, dword [esp + 0x98]
mov dword [esp], eax
mov ecx, dword [esp + 0x9c]
mov dword [esp + 4], ecx
call fcn.00584990
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x9c]
cmp eax, ecx
ja 0x584546
mov edx, ecx
sub ecx, eax
mov ebx, ecx
neg ecx
sar ecx, 0x1f
and ecx, eax
mov ebp, dword [esp + 0x98]
lea esi, [ebp + ecx]
test ebx, ebx
je 0x5843eb
nop
movzx ecx, byte [ebp + ecx]
cmp cl, 0x5c
jne 0x5843e0
mov ecx, 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x98], esi
mov byte [esp + 0x25], cl
lea edi, [esp + 0x70]
xor eax, eax
call fcn.0044f1c7
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], ebx
mov dword [esp + 0x88], ebp
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x90], edx
movzx edx, byte [esp + 0x25]
test dl, dl
je 0x5843d5
nop
test ecx, ecx
je 0x584337
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x84]
lea ebp, [esp + 0x70]
cmp dword [ebp + 0xc], ecx
jbe 0x584538
mov byte [eax + ecx], 0x5c
inc dword [esp + 0x84]
mov eax, 1
mov ecx, eax
jmp 0x583a1a
lea ebp, [esp + 0x70]
cmp eax, ebx
jge 0x584139
jae 0x584531
nop
movzx edi, byte [esi + eax]
xchg edi, eax
cmp al, 0x5c
xchg edi, eax
jne 0x58411e
mov ebp, 1
xchg ebp, eax
mov byte [esp + 0x24], al
xchg ebp, eax
lea ebp, [esp + 0x70]
movzx ebp, byte [esp + 0x24]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x583a55
inc eax
jmp 0x583a16
xchg edi, eax
cmp al, 0x2e
xchg edi, eax
jne 0x583a93
lea ebp, [eax + 1]
cmp ebp, ebx
jne 0x5840e6
mov dword [esp + 0x44], eax
mov eax, 1
mov byte [esp + 0x27], al
mov eax, dword [esp + 0x44]
movzx esi, byte [esp + 0x27]
xchg esi, eax
test al, al
xchg esi, eax
je 0x583a8e
mov esi, dword [esp + 0x98]
mov eax, ebp
jmp 0x583a16
xchg edi, eax
cmp al, 0x2e
xchg edi, eax
jne 0x5840d8
lea ebp, [eax + 1]
cmp ebp, ebx
jae 0x584523
mov ebp, dword [esp + 0x98]
movzx esi, byte [eax + ebp + 1]
xchg esi, eax
cmp al, 0x2e
xchg esi, eax
jne 0x5840d1
lea esi, [eax + 2]
cmp esi, ebx
jne 0x5840a3
mov edi, 1
xchg edi, eax
test al, al
xchg edi, eax
je 0x583e25
mov eax, dword [esp + 0x84]
cmp eax, ecx
jle 0x583b57
dec eax
mov dword [esp + 0x84], eax
jmp 0x583af7
dec eax
mov dword [esp + 0x84], eax
movzx edx, byte [esp + 0x25]
mov eax, dword [esp + 0x84]
cmp eax, ecx
jle 0x583b2a
nop
mov edi, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
test edi, edi
je 0x583b40
cmp eax, edx
jae 0x58451c
movzx edx, byte [edi + eax]
nop
cmp dl, 0x5c
jne 0x583b38
mov edx, 1
test dl, dl
je 0x583aea
movzx edx, byte [esp + 0x25]
mov eax, esi
mov esi, ebp
jmp 0x583a16
cmp dl, 0x2f
sete dl
jmp 0x583b26
mov edx, dword [esp + 0x70]
lea edi, [esp + 0x70]
cmp dword [edi + 4], eax
jbe 0x584515
movzx edx, byte [edx + eax]
jmp 0x583b1b
test dl, dl
jne 0x583b2a
mov dword [esp + 0x3c], esi
test eax, eax
jle 0x583e1c
nop
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x583d6f
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x84]
lea edi, [esp + 0x70]
cmp dword [edi + 0xc], ecx
jbe 0x584507
mov byte [eax + ecx], 0x5c
inc dword [esp + 0x84]
nop
mov eax, dword [esp + 0x78]
test eax, eax
je 0x583cb2
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x84]
cmp dword [edi + 0xc], ecx
jbe 0x5844f2
mov byte [eax + ecx], 0x2e
inc dword [esp + 0x84]
nop
mov eax, dword [esp + 0x78]
test eax, eax
je 0x583bf7
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x84]
cmp dword [edi + 0xc], ecx
jbe 0x5844dd
mov byte [eax + ecx], 0x2e
inc dword [esp + 0x84]
mov ecx, dword [esp + 0x84]
jmp 0x583b2a
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
cmp eax, ecx
jge 0x583c29
jae 0x5844eb
movzx edi, byte [edi + eax]
xchg edi, eax
cmp al, 0x2e
xchg edi, eax
jne 0x583c29
inc eax
mov dword [esp + 0x84], eax
lea edi, [esp + 0x70]
jmp 0x583beb
mov dword [esp + 0x38], ecx
lea eax, [0x7ac140]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.0043a890
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x78], eax
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x84]
test ebp, ebp
jl 0x5844e4
cmp ebp, ebx
ja 0x5844e4
cmp ecx, ebp
jle 0x583cae
cmp eax, edx
je 0x583c91
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.0044f8d0
movzx edx, byte [esp + 0x25]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x98]
mov esi, dword [esp + 0x3c]
lea edi, [esp + 0x70]
jmp 0x583bcc
mov ebp, ecx
jmp 0x583c7d
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
cmp eax, ecx
jge 0x583ce6
jae 0x584500
movzx edx, byte [edx + eax]
cmp dl, 0x2e
jne 0x583ce6
inc eax
mov dword [esp + 0x84], eax
movzx edx, byte [esp + 0x25]
jmp 0x583bc3
mov dword [esp + 0x38], ecx
lea eax, [0x7ac140]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.0043a890
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x78], eax
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x84]
test ebp, ebp
jl 0x5844f9
cmp ebp, edx
ja 0x5844f9
cmp ecx, ebp
jle 0x583d6b
cmp eax, ebx
je 0x583d4e
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.0044f8d0
movzx edx, byte [esp + 0x25]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x98]
mov esi, dword [esp + 0x3c]
lea edi, [esp + 0x70]
jmp 0x583ba4
mov ebp, ecx
jmp 0x583d3a
mov ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
cmp eax, ecx
jge 0x583d97
movzx edi, byte [edi + eax]
xchg edi, eax
cmp al, 0x5c
xchg edi, eax
jne 0x583d97
inc eax
mov dword [esp + 0x84], eax
lea edi, [esp + 0x70]
jmp 0x583b97
mov dword [esp + 0x38], ecx
lea eax, [0x7ac140]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.0043a890
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x78], eax
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x84]
test ebp, ebp
jl 0x58450e
cmp ebp, edx
ja 0x58450e
cmp ecx, ebp
jle 0x583e18
cmp eax, ebx
je 0x583dff
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.0044f8d0
movzx edx, byte [esp + 0x25]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x98]
mov esi, dword [esp + 0x3c]
jmp 0x583b74
mov ebp, ecx
jmp 0x583deb
lea edi, [esp + 0x70]
jmp 0x583b97
test dl, dl
mov dword [esp + 0x30], ecx
je 0x58407a
cmp dword [esp + 0x84], 1
je 0x584078
nop
mov esi, dword [esp + 0x78]
test esi, esi
je 0x583fb8
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x84]
lea edx, [esp + 0x70]
cmp dword [edx + 0xc], edi
jbe 0x5844c8
mov byte [esi + edi], 0x5c
inc dword [esp + 0x84]
jmp 0x583e76
inc eax
mov ecx, dword [esp + 0x30]
cmp eax, ebx
jge 0x583f9b
jae 0x5844c1
nop
movzx esi, byte [eax + ebp]
xchg esi, eax
cmp al, 0x5c
xchg esi, eax
jne 0x583fa7
mov edi, 1
xchg edi, eax
test al, al
xchg edi, eax
jne 0x583f9b
nop
mov edi, dword [esp + 0x78]
test edi, edi
je 0x583ece
mov edi, dword [esp + 0x78]
mov ecx, dword [esp + 0x84]
cmp dword [edx + 0xc], ecx
jbe 0x5844ac
xchg esi, eax
mov byte [edi + ecx], al
xchg esi, eax
inc dword [esp + 0x84]
jmp 0x583e71
mov dword [esp + 0x2c], eax
xchg esi, eax
mov byte [esp + 0x26], al
xchg esi, eax
mov edi, dword [esp + 0x84]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
cmp edi, edx
jge 0x583f0e
jae 0x5844ba
movzx ecx, byte [ecx + edi]
xchg esi, eax
cmp cl, al
xchg esi, eax
jne 0x583f0e
lea ecx, [edi + 1]
mov dword [esp + 0x84], ecx
lea edx, [esp + 0x70]
jmp 0x583e71
mov dword [esp + 0x38], edx
lea eax, [0x7ac140]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], edx
call fcn.0043a890
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x78], eax
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x84]
test ebp, ebp
jl 0x5844b3
cmp ebp, edx
ja 0x5844b3
cmp ecx, ebp
jle 0x583f97
cmp eax, ebx
je 0x583f76
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.0044f8d0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x70]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x98]
movzx esi, byte [esp + 0x26]
jmp 0x583eac
mov ebp, ecx
jmp 0x583f62
movzx edx, byte [esp + 0x25]
mov esi, ebp
jmp 0x583a16
xchg esi, eax
cmp al, 0x2f
xchg esi, eax
xchg edi, ebx
sete bl
xchg edi, ebx
jmp 0x583e99
mov dword [esp + 0x34], eax
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
cmp esi, edi
jge 0x583fef
jae 0x5844d6
movzx edx, byte [edx + esi]
cmp dl, 0x5c
jne 0x583fef
inc esi
mov dword [esp + 0x84], esi
lea edx, [esp + 0x70]
jmp 0x583e76
mov dword [esp + 0x38], edi
lea eax, [0x7ac140]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], edi
call fcn.0043a890
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x78], eax
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x84]
test ebp, ebp
jl 0x5844cf
cmp ebp, edx
ja 0x5844cf
cmp ecx, ebp
jle 0x584074
cmp eax, ebx
je 0x584057
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.0044f8d0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
movzx edx, byte [esp + 0x25]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x98]
jmp 0x583e4c
mov ebp, ecx
jmp 0x584043
test dl, dl
je 0x584091
xor esi, esi
xchg esi, eax
test al, al
xchg esi, eax
jne 0x583e3f
lea edx, [esp + 0x70]
jmp 0x583e76
mov edi, dword [esp + 0x84]
test edi, edi
xchg esi, ebx
setne bl
xchg esi, ebx
jmp 0x58407e
jae 0x584523
nop
movzx edi, byte [eax + ebp + 2]
xchg edi, eax
cmp al, 0x5c
xchg edi, eax
jne 0x5840c0
mov edi, 1
jmp 0x583acb
xchg edi, eax
cmp al, 0x2f
xchg edi, eax
xchg edi, ebx
sete bl
xchg edi, ebx
jmp 0x583acb
test dl, dl
jmp 0x583e27
test dl, dl
mov ebp, dword [esp + 0x98]
jmp 0x583e27
jae 0x58452a
nop
movzx esi, byte [eax + esi + 1]
xchg esi, eax
cmp al, 0x5c
xchg esi, eax
jne 0x584110
mov esi, 1
xchg esi, eax
mov byte [esp + 0x27], al
xchg esi, eax
mov esi, dword [esp + 0x98]
jmp 0x583a78
xchg esi, eax
cmp al, 0x2f
xchg esi, eax
xchg esi, ebx
sete bl
xchg esi, ebx
jmp 0x5840fe
xchg edi, eax
cmp al, 0x2f
xchg edi, eax
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg ebp, eax
mov byte [esp + 0x24], al
xchg ebp, eax
lea ebp, [esp + 0x70]
jmp 0x583a47
mov eax, dword [esp + 0x84]
test eax, eax
jne 0x584170
nop
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x5842a0
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x84]
cmp dword [ebp + 0xc], ecx
jbe 0x58449e
mov byte [eax + ecx], 0x2e
inc dword [esp + 0x84]
nop
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x58426b
mov edx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x88]
mov ebp, dword [esp + 0x90]
test ebp, ebp
jl 0x584490
cmp ebp, edx
ja 0x584490
mov edx, dword [esp + 0x84]
test edx, edx
jl 0x584490
cmp edx, eax
ja 0x584490
mov dword [esp + 0x40], ebp
mov dword [esp + 0x6c], ebx
lea ebx, [esp + 0x4c]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
call fcn.0043dd50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp], 0
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.0043dbd0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
nop
nop
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x814151]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x81416c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 0xffffffff
call fcn.004d1480
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], eax
add esp, 0x94
ret
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x90]
add edx, dword [esp + 0x84]
test edx, edx
jl 0x584497
cmp edx, eax
ja 0x584497
mov eax, ecx
mov ecx, edx
jmp 0x584214
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
cmp eax, ecx
jge 0x5842c2
movzx edx, byte [edx + eax]
cmp dl, 0x2e
jne 0x5842c2
inc eax
mov dword [esp + 0x84], eax
jmp 0x584170
mov dword [esp + 0x40], ecx
lea eax, [0x7ac140]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.0043a890
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x78], eax
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x84]
test ebp, ebp
jl 0x5844a5
cmp ebp, edx
ja 0x5844a5
cmp ecx, ebp
jle 0x584333
cmp eax, ebx
je 0x58432a
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.0044f8d0
lea ebp, [esp + 0x70]
jmp 0x584151
mov ebp, ecx
jmp 0x584316
mov eax, dword [esp + 0x70]
test ebx, ebx
jle 0x584358
cmp byte [eax], 0x5c
jne 0x584358
mov dword [esp + 0x84], 1
lea ebp, [esp + 0x70]
jmp 0x583a0d
lea eax, [0x7ac140]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call fcn.0043a890
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x78], eax
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x84]
test ebp, ebp
jl 0x58453f
cmp ebp, edx
ja 0x58453f
cmp ecx, ebp
jle 0x5843d1
cmp eax, ebx
je 0x5843bc
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.0044f8d0
movzx edx, byte [esp + 0x25]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x98]
jmp 0x5839ea
mov ebp, ecx
jmp 0x5843a8
lea ebp, [esp + 0x70]
xor eax, eax
jmp 0x583a12
cmp cl, 0x2f
sete cl
jmp 0x583991
cmp eax, 1
jle 0x5843f6
cmp byte [ebp + 1], 0x3a
jne 0x584439
mov dword [esp], 0
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
lea eax, [0x814150]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
call fcn.0043dbd0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], eax
add esp, 0x94
ret
nop
nop
mov dword [esp], ebp
mov dword [esp + 4], edx
lea eax, [0x814151]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x81416c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 0xffffffff
call fcn.004d1480
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], eax
add esp, 0x94
ret
call fcn.004288c0
ud2
call fcn.004288c0
ud2
call fcn.004287c0
ud2
call fcn.004288c0
ud2
call fcn.004287c0
ud2
call fcn.004288c0
ud2
call fcn.004287c0
ud2
call fcn.004287c0
ud2
call fcn.004287c0
ud2
call fcn.004288c0
ud2
call fcn.004287c0
ud2
call fcn.004287c0
ud2
call fcn.004288c0
ud2
call fcn.004287c0
ud2
call fcn.004287c0
ud2
call fcn.004288c0
ud2
call fcn.004287c0
ud2
call fcn.004287c0
ud2
call fcn.004288c0
ud2
call fcn.004287c0
ud2
call fcn.004287c0
ud2
call fcn.004287c0
ud2
call fcn.004287c0
ud2
call fcn.004287c0
ud2
call fcn.004287c0
ud2
call fcn.004288c0
ud2
call fcn.004288c0
ud2
call fcn.0044d880
jmp fcn.00583910