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

Disassembly:
mov ecx, dword [0x8602c0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x54]
cmp eax, dword [ecx + 8]
jbe 0x586d5d
sub esp, 0xd4
mov eax, dword [esp + 0xd8]
movzx ecx, byte [eax]
nop
test cl, cl
jne 0x585ecf
mov ecx, dword [esp + 0xdc]
test ecx, ecx
je 0x585f01
movzx ecx, byte [ecx]
test cl, cl
je 0x585f01
cmp dword [eax + 0x10], 7
jne 0x585ef5
mov ecx, dword [eax + 0xc]
cmp dword [ecx], 0x646e6977
jne 0x585ef5
cmp word [ecx + 4], 0x776f
jne 0x585ef5
cmp byte [ecx + 6], 0x73
jne 0x585ef5
mov ecx, 4
jmp 0x585efa
mov ecx, 1
xor edx, edx
jmp 0x585f90
movzx ecx, byte [eax + 1]
test cl, cl
jne 0x586520
movzx ecx, byte [eax + 8]
test cl, cl
jne 0x586503
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xe4]
mov dword [esp + 4], ecx
mov byte [esp + 8], 0x5c
call fcn.004033d0
cmp dword [esp + 0xc], 0xffffffff
jne 0x585f65
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xe4]
mov dword [esp + 4], ecx
mov byte [esp + 8], 0x25
call fcn.004033d0
cmp dword [esp + 0xc], 0xffffffff
je 0x585f82
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
add esp, 0xd4
ret
mov eax, dword [esp + 0xd8]
xor ecx, ecx
mov edx, 1
mov byte [esp + 0x1d], dl
mov dword [esp + 0x2c], ecx
mov ebx, dword [eax + 0x10]
mov ebp, dword [eax + 0xc]
cmp ebx, 3
jne 0x585fb3
cmp word [ebp], 0x6f69
jne 0x586015
cmp byte [ebp + 2], 0x73
je 0x585ffc
jmp 0x586015
cmp ebx, 5
jne 0x585fc9
cmp dword [ebp], 0x6e616c70
jne 0x586015
cmp byte [ebp + 4], 0x39
je 0x585ffc
jmp 0x586015
cmp ebx, 7
jne 0x586015
cmp dword [ebp], 0x72646e61
jne 0x585fe5
cmp word [ebp + 4], 0x696f
jne 0x585fe5
cmp byte [ebp + 6], 0x64
je 0x585ffc
cmp dword [ebp], 0x646e6977
jne 0x586015
cmp word [ebp + 4], 0x776f
jne 0x586015
cmp byte [ebp + 6], 0x73
jne 0x586015
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xec], 0
add esp, 0xd4
ret
call fcn.0058d010
mov eax, dword [esp]
mov dword [esp + 0x6c], eax
movzx ecx, byte [esp + 0x1d]
test cl, cl
je 0x58606d
mov ebx, dword [eax + 0x38]
test ebx, ebx
jne 0x586035
xor edx, edx
jmp 0x58606f
mov ecx, dword [eax + 0x3c]
mov edx, dword [0x839f88]
mov ebp, dword [0x839f8c]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
call fcn.0046db70
movzx eax, byte [esp + 0x10]
xor eax, 1
movzx ecx, byte [esp + 0x1d]
mov edx, eax
mov eax, dword [esp + 0x6c]
jmp 0x58606f
xor edx, edx
test dl, dl
jne 0x586077
test cl, cl
jmp 0x5860b7
mov ecx, dword [0x839f78]
mov edx, dword [0x839f7c]
mov ebx, dword [eax + 0x38]
mov ebp, dword [eax + 0x3c]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call fcn.0046db70
movzx eax, byte [esp + 0x10]
test al, al
je 0x5864e6
movzx ebx, byte [esp + 0x1d]
test bl, bl
mov eax, dword [esp + 0x6c]
mov ecx, ebx
je 0x5860da
movzx ebx, byte [eax + 0x29]
test bl, bl
je 0x5860da
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
mov ebx, dword [esp + 0xd8]
cmp dword [ebx + 0x10], 7
jne 0x5862a5
mov ebp, dword [ebx + 0xc]
cmp dword [ebp], 0x6e65706f
jne 0x5862a5
cmp word [ebp + 4], 0x7362
jne 0x5862a5
cmp byte [ebp + 6], 0x64
jne 0x5862a5
mov ecx, dword [0x839f88]
mov edx, dword [0x839f8c]
mov ebx, dword [eax + 0x38]
mov ebp, dword [eax + 0x3c]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call fcn.0046db70
movzx eax, byte [esp + 0x10]
test al, al
jne 0x586288
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x30]
test ecx, ecx
je 0x58626f
cmp ecx, 2
jg 0x586256
mov edx, dword [eax + 0x2c]
cmp dword [edx + 4], 4
jne 0x58623d
mov ebx, dword [edx]
cmp dword [ebx], 0x646e6962
jne 0x5861d4
cmp ecx, 2
jne 0x5861bb
cmp dword [edx + 0xc], 4
jne 0x5861a2
mov ecx, dword [edx + 8]
cmp dword [ecx], 0x656c6966
jne 0x5861a2
mov dword [esp + 0xe8], 2
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
mov dword [esp + 0xe8], 4
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
cmp dword [ebx], 0x656c6966
jne 0x58623d
cmp ecx, 2
jne 0x586224
cmp dword [edx + 0xc], 4
jne 0x58620b
mov ecx, dword [edx + 8]
cmp dword [ecx], 0x646e6962
jne 0x58620b
mov dword [esp + 0xe8], 1
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
mov dword [esp + 0xe8], 3
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
mov dword [esp + 0xe8], 2
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
mov dword [esp + 0xe8], 3
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
mov edx, dword [esp + 0xe4]
test edx, edx
jle 0x586300
lea ebp, [edx - 1]
cmp edx, ebp
jb 0x586d53
mov eax, dword [esp + 0xe0]
lea ecx, [edx + eax - 1]
mov dword [esp], ecx
lea ecx, str..0__E
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
call fcn.00403360
movzx eax, byte [esp + 0xc]
movzx ecx, byte [esp + 0x1d]
mov edx, dword [esp + 0xe4]
mov ebx, dword [esp + 0xd8]
mov ebp, eax
mov eax, dword [esp + 0x6c]
jmp 0x586302
xor ebp, ebp
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x586317
lea ebp, [edx - 1]
cmp edx, ebp
jb 0x586d4c
test cl, cl
jmp 0x58631b
test cl, cl
mov ebp, edx
mov dword [esp + 0x20], ebp
je 0x586353
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov dword [esp + 4], ebp
lea ecx, [0x639805]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 6
call fcn.0059c800
movzx eax, byte [esp + 0x10]
test al, al
jne 0x5864c9
call fcn.0059ab90
mov eax, dword [esp]
mov dword [esp + 0x58], eax
mov ecx, dword [eax + 0x1c]
lea edx, [0x60f8a0]
mov dword [esp], edx
mov dword [esp + 4], ecx
lea ecx, [0x63958f]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 5
call fcn.00410390
mov eax, dword [esp + 0x10]
mov ecx, dword [0x839f88]
mov edx, dword [0x839f8c]
mov ebx, dword [esp + 0x58]
mov ebp, dword [ebx + 0x14]
mov esi, dword [ebx + 0x18]
mov edi, dword [eax + 4]
mov dword [esp + 0x24], edi
mov edi, dword [eax]
mov dword [esp + 0x5c], edi
mov eax, dword [eax + 8]
mov dword [esp + 0x28], eax
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call fcn.0046db70
movzx eax, byte [esp + 0x10]
test al, al
jne 0x586460
mov eax, dword [esp + 0x58]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x5863e6
mov ecx, dword [esp + 0x24]
jmp 0x5863f0
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x586457
test eax, eax
jne 0x58643a
mov eax, dword [esp + 0x5c]
mov edx, eax
mov ebx, dword [esp + 0x28]
movzx ebp, byte [esp + 0x1d]
mov esi, dword [esp + 0x20]
xor edi, edi
xor edi, edi
mov dword [esp + 0x3c], edi
xor edi, edi
xchg edi, eax
mov byte [esp + 0x1f], al
xchg edi, eax
xor edi, edi
mov dword [esp + 0x60], edi
xor edi, edi
xchg edi, eax
mov byte [esp + 0x1c], al
xchg edi, eax
xor edi, edi
xchg edi, eax
mov byte [esp + 0x1b], al
xchg edi, eax
xor edi, edi
xchg edi, eax
mov byte [esp + 0x1e], al
xchg edi, eax
xor edi, edi
jmp 0x586560
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
movzx eax, byte [esp + 0x1d]
test al, al
jmp 0x586467
movzx eax, byte [esp + 0x1d]
test al, al
je 0x5864ac
mov eax, dword [esp + 0xd8]
cmp dword [eax + 0x10], 7
jne 0x5864ac
mov eax, dword [eax + 0xc]
cmp dword [eax], 0x616c6f73
jne 0x5864ac
cmp word [eax + 4], 0x6972
jne 0x5864ac
cmp byte [eax + 6], 0x73
jne 0x5864ac
mov dword [esp + 0xe8], 0
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
mov dword [esp + 0xe8], 1
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
mov dword [esp + 0xe8], 0
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
mov dword [esp + 0xe8], 0
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
add esp, 0xd4
ret
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
add esp, 0xd4
ret
add eax, 0x14
inc ecx
mov edi, ecx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x60], esi
mov byte [esp + 0x1e], bl
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
movzx ebp, byte [esp + 0x1d]
mov esi, dword [esp + 0x20]
cmp edi, ecx
jge 0x5868b6
mov dword [esp + 0x38], edi
mov dword [esp + 0x68], eax
lea edi, [esp + 0xac]
mov esi, eax
call fcn.004683ce
mov ecx, dword [esp + 0xb0]
mov esi, dword [esp + 0xac]
cmp ecx, 5
jne 0x5865a5
cmp dword [esi], 0x656c6966
jne 0x5865a5
cmp byte [esi + 4], 0x73
jne 0x5865a5
xchg ebp, eax
test al, al
xchg ebp, eax
jmp 0x5865bb
cmp ecx, 3
jne 0x5865f0
cmp word [esi], 0x6e64
jne 0x5865ea
cmp byte [esi + 2], 0x73
jne 0x5865e4
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x586b15
lea edi, [esp + 0x70]
lea esi, [esp + 0xac]
call fcn.004683ce
mov ecx, dword [esp + 0x78]
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x44], esi
xor edi, edi
jmp 0x586bac
xchg ebp, eax
test al, al
xchg ebp, eax
jmp 0x5865f4
xchg ebp, eax
test al, al
xchg ebp, eax
jmp 0x5865f4
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x5867bd
mov edi, edx
mov edx, dword [esp + 0x20]
test edx, edx
je 0x586645
cmp ecx, 0xa
je 0x58660d
xor ecx, ecx
jmp 0x586647
mov dword [esp], esi
lea eax, [0x63a604]
mov dword [esp + 4], eax
mov dword [esp + 8], 0xa
call fcn.00403360
movzx eax, byte [esp + 0xc]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x28]
movzx ebp, byte [esp + 0x1d]
mov edi, dword [esp + 0x5c]
mov ecx, eax
mov eax, dword [esp + 0x68]
jmp 0x586647
xor ecx, ecx
test cl, cl
jne 0x586773
test edx, edx
je 0x586899
cmp dword [esp + 0xb0], 4
jge 0x586665
xor ecx, ecx
jmp 0x5866a2
mov eax, dword [esp + 0xac]
mov dword [esp], eax
lea eax, [0x6393c0]
mov dword [esp + 4], eax
mov dword [esp + 8], 4
call fcn.00403360
movzx eax, byte [esp + 0xc]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x28]
movzx ebp, byte [esp + 0x1d]
mov edi, dword [esp + 0x5c]
mov ecx, eax
mov eax, dword [esp + 0x68]
test cl, cl
je 0x586899
mov ecx, dword [esp + 0xd8]
mov esi, dword [ecx + 0x14]
test esi, esi
je 0x5866ce
cmp esi, 1
jne 0x5866c7
mov esi, 1
jmp 0x58674f
xor esi, esi
jmp 0x58674f
lea eax, [0x63c2bf]
mov dword [esp], eax
mov dword [esp + 4], 0xf
call fcn.004c69a0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x58672b
mov dword [esp + 0x30], eax
mov eax, dword [0x839f88]
mov ecx, dword [0x839f8c]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.0046db70
movzx eax, byte [esp + 0x10]
test al, al
je 0x58687c
mov eax, dword [esp + 0x30]
test eax, eax
setne al
xor eax, 1
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x28]
movzx ebp, byte [esp + 0x1d]
mov edi, dword [esp + 0x5c]
mov esi, eax
mov eax, dword [esp + 0x68]
xchg esi, eax
test al, al
xchg esi, eax
jne 0x58685f
mov ecx, dword [esp + 0x38]
mov edx, edi
mov edi, ebx
movzx ebx, byte [esp + 0x1e]
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x60]
jmp 0x58653d
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00586f50
movzx eax, byte [esp + 8]
test al, al
jne 0x5869d0
nop
mov eax, dword [esp + 0x20]
cmp eax, 8
je 0x5867af
mov ecx, dword [esp + 0xe0]
lea ebp, [0x639dfb]
jmp 0x586a20
mov ecx, dword [esp + 0xe0]
xor edx, edx
jmp 0x5869ee
movzx ecx, byte [esp + 0x1b]
test cl, cl
je 0x5867d3
mov ecx, dword [esp + 0x38]
mov edi, ebx
movzx ebx, byte [esp + 0x1e]
jmp 0x586811
mov ecx, dword [esp + 0x38]
lea esi, [ecx + ecx*4]
mov edi, ebx
sub ebx, ecx
mov ebp, dword [esp + 0x24]
sub ebp, ecx
dec ebx
neg ebx
shl esi, 2
add esi, 0x14
sar ebx, 0x1f
and esi, ebx
lea ebx, [edx + esi]
dec ebp
xor esi, esi
jmp 0x586993
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x28]
mov ebx, 1
jmp 0x586811
movzx ebx, byte [esp + 0x1e]
test bl, bl
je 0x58681f
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x60]
jmp 0x586849
mov ebp, dword [esp + 0x3c]
test ebp, ebp
jne 0x586834
mov ebp, 3
lea esi, [0x639279]
jmp 0x586838
mov esi, dword [esp + 0x60]
mov dword [esp + 0x50], eax
mov eax, 1
mov byte [esp + 0x1f], al
mov eax, dword [esp + 0x50]
mov dword [esp + 0x48], eax
mov eax, 1
mov byte [esp + 0x1b], al
mov eax, dword [esp + 0x48]
jmp 0x58653d
mov dword [esp + 0xe8], 0
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
mov dword [esp + 0xe8], 0
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
mov dword [esp + 0xe8], 0
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
movzx eax, byte [esp + 0x1c]
test al, al
je 0x58693e
movzx ecx, byte [esp + 0x1f]
test cl, cl
je 0x58691d
mov eax, dword [esp + 0x3c]
cmp eax, 5
jne 0x586900
mov eax, dword [esp + 0x60]
cmp dword [eax], 0x656c6966
jne 0x586900
cmp byte [eax + 4], 0x73
jne 0x586900
mov dword [esp + 0xe8], 1
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
mov dword [esp + 0xe8], 2
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
test al, al
je 0x586943
mov dword [esp + 0xe8], 3
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
movzx ecx, byte [esp + 0x1f]
test cl, cl
je 0x586964
mov dword [esp + 0xe8], 4
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
add ebx, 0x14
mov ecx, dword [esp + 0x44]
lea esi, [ecx + 1]
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x28]
cmp esi, ebp
jge 0x58680c
mov dword [esp + 0x44], esi
lea edi, [esp + 0x98]
mov esi, ebx
call fcn.004683ce
cmp dword [esp + 0x9c], 3
jne 0x586981
mov ecx, dword [esp + 0x98]
cmp word [ecx], 0x6e64
jne 0x586981
cmp byte [ecx + 2], 0x73
jne 0x586981
jmp 0x5867fd
mov dword [esp + 0xe8], 0
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
inc edx
cmp edx, eax
jge 0x5869d0
movzx ebx, byte [edx + ecx]
lea ebp, [ebx - 0x41]
xchg ebp, eax
cmp al, 0x19
xchg ebp, eax
ja 0x586a03
add ebx, 0x20
lea ebp, [0x639dfb]
movzx esi, byte [edx + ebp]
lea edi, [esi - 0x41]
xchg edi, eax
cmp al, 0x19
xchg edi, eax
ja 0x586a1a
add esi, 0x20
xchg esi, eax
cmp al, bl
xchg esi, eax
je 0x5869ed
nop
nop
cmp eax, 9
jne 0x586a2e
xor edx, edx
jmp 0x586ada
mov edx, dword [0x82f25c]
mov eax, dword [edx]
call eax
mov eax, dword [esp + 8]
test eax, eax
jne 0x586a63
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x20]
cmp ecx, eax
je 0x586a55
mov edx, dword [esp + 0xe0]
jmp 0x586ab1
mov eax, dword [esp]
mov edx, dword [esp + 0xe0]
xor ebx, ebx
jmp 0x586a81
mov dword [esp + 0xe8], 0
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
inc ebx
cmp ebx, ecx
jge 0x586a63
movzx ebp, byte [ebx + edx]
lea esi, [ebp - 0x41]
xchg esi, eax
cmp al, 0x19
xchg esi, eax
ja 0x586a96
add ebp, 0x20
movzx esi, byte [ebx + eax]
lea edi, [esi - 0x41]
xchg edi, eax
cmp al, 0x19
xchg edi, eax
ja 0x586aa7
add esi, 0x20
xchg esi, eax
xchg ebp, ebx
cmp al, bl
xchg ebp, ebx
xchg esi, eax
je 0x586a80
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x5c]
mov edi, dword [esp + 0x28]
movzx ebx, byte [esp + 0x1e]
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x60]
jmp 0x58653d
inc edx
lea ebp, [0x639dfb]
cmp edx, eax
jge 0x5869d0
movzx ebx, byte [edx + ecx]
lea esi, [ebx - 0x41]
xchg esi, eax
cmp al, 0x19
xchg esi, eax
ja 0x586af3
add ebx, 0x20
lea esi, [0x63a186]
movzx edi, byte [edx + esi]
lea ebp, [edi - 0x41]
xchg ebp, eax
cmp al, 0x19
xchg ebp, eax
ja 0x586b0a
add edi, 0x20
xchg edi, eax
cmp al, bl
xchg edi, eax
je 0x586ad3
jmp 0x586a2e
mov ecx, dword [esp + 0xb0]
mov esi, dword [esp + 0xac]
cmp ecx, 5
jne 0x586b3d
cmp dword [esi], 0x656c6966
jne 0x586b3d
cmp byte [esi + 4], 0x73
jne 0x586b3d
mov edi, 1
jmp 0x586b68
movzx edi, byte [esp + 0x1c]
mov edi, 1
xchg edi, eax
mov byte [esp + 0x1b], al
xchg edi, eax
mov edi, 1
xchg edi, eax
mov byte [esp + 0x1e], al
xchg edi, eax
mov edi, 1
xchg edi, eax
mov byte [esp + 0x1f], al
xchg edi, eax
movzx edi, byte [esp + 0x1c]
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x586b76
mov ecx, edx
mov esi, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
xchg edi, eax
mov byte [esp + 0x1c], al
xchg edi, eax
movzx ebx, byte [esp + 0x1e]
mov ebp, ecx
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x28]
jmp 0x58653d
mov ecx, dword [esp + 0x64]
add ecx, 0x14
lea edx, [ebx + 1]
mov esi, dword [esp + 0x44]
mov ebx, dword [esp + 0x28]
mov edi, edx
mov edx, dword [esp + 0x5c]
cmp edi, esi
jge 0x586d29
mov dword [esp + 0x34], edi
mov dword [esp + 0x64], ecx
lea edi, [esp + 0x84]
mov esi, ecx
call fcn.004683ce
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x40], ecx
lea edi, [esp + 0xc0]
lea esi, [esp + 0x84]
call fcn.004683ce
movzx ecx, byte [esp + 0xc0]
test cl, cl
je 0x586bfe
mov ebx, dword [esp + 0x34]
mov edi, edx
xor ecx, ecx
jmp 0x586d15
mov ecx, dword [esp + 0xc8]
mov esi, dword [esp + 0xc4]
cmp ecx, 7
jne 0x586c57
cmp dword [esi], 0x63637573
jne 0x586c34
cmp word [esi + 4], 0x7365
jne 0x586c34
cmp byte [esi + 6], 0x73
jne 0x586c34
mov ecx, 6
lea esi, [0x63980b]
jmp 0x586c95
cmp dword [esi], 0x76616e75
jne 0x586d0d
cmp word [esi + 4], 0x6961
jne 0x586d0d
cmp byte [esi + 6], 0x6c
je 0x586c8a
jmp 0x586d0d
cmp ecx, 8
jne 0x586d0d
cmp dword [esi], 0x66746f6e
jne 0x586c71
cmp dword [esi + 4], 0x646e756f
je 0x586c8a
cmp dword [esi], 0x61797274
jne 0x586d0d
cmp dword [esi + 4], 0x6e696167
jne 0x586d0d
mov ecx, 8
lea esi, [0x639df3]
mov edi, edx
mov edx, dword [esp + 0x40]
dec edx
mov ebx, dword [esp + 0x34]
cmp ebx, edx
jne 0x586ccc
cmp dword [esp + 0xd0], 6
jne 0x586ccc
mov edx, dword [esp + 0xcc]
cmp dword [edx], 0x75746572
jne 0x586ccc
cmp word [edx + 4], 0x6e72
jne 0x586ccc
mov ecx, 1
jmp 0x586d15
lea edx, [esp + 0xc0]
cmp dword [edx + 0x10], ecx
je 0x586cdc
xor ecx, ecx
jmp 0x586d15
mov eax, dword [esp + 0xcc]
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
call fcn.00403360
movzx eax, byte [esp + 0xc]
mov ebx, dword [esp + 0x34]
movzx ebp, byte [esp + 0x1d]
mov edi, dword [esp + 0x5c]
mov ecx, eax
mov eax, dword [esp + 0x68]
jmp 0x586d15
mov ebx, dword [esp + 0x34]
mov edi, edx
xor ecx, ecx
test cl, cl
jne 0x586b94
mov ecx, dword [esp + 0x44]
cmp ebx, ecx
mov edx, edi
mov ebx, dword [esp + 0x28]
jge 0x586b15
mov dword [esp + 0xe8], 0
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xec], eax
add esp, 0xd4
ret
mov ecx, ebp
call fcn.00467cd0
mov eax, ebp
mov ecx, edx
call fcn.00467d10
nop
call fcn.00466840
jmp fcn.00585e90