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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x9c]
cmp eax, dword [ecx + 8]
jbe 0x5c9aee
sub esp, 0x11c
lea eax, [0x657160]
mov dword [esp], eax
mov ecx, dword [esp + 0x120]
mov dword [esp + 4], ecx
lea edx, [0x6628d7]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0xa
call fcn.0040fb10
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
test eax, eax
je 0x5c8dc2
mov dword [esp + 0x58], eax
lea ecx, [0x6340e0]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], eax
call fcn.00447580
mov eax, dword [esp + 0xc]
mov dword [esp + 0xa0], eax
lea ecx, [0x657160]
mov dword [esp], ecx
mov ecx, dword [esp + 0x120]
mov dword [esp + 4], ecx
lea ecx, [0x6628d7]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0xa
call fcn.0040fb10
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov dword [esp + 0x9c], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x58]
xor ebp, ebp
xor esi, esi
jmp 0x5c8e0b
lea eax, [0x84c5c8]
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0
add esp, 0x11c
ret
mov edi, dword [esp + 0x6c]
lea ebp, [edi + 1]
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0x9c]
mov esi, ecx
mov ebx, eax
mov eax, edi
mov ecx, dword [esp + 0x9c]
cmp ebp, eax
jge 0x5c8fe6
lea edi, [ecx + ebp*8]
mov ecx, dword [edi]
mov dword [esp + 0x88], ecx
mov edi, dword [edi + 4]
mov dword [esp + 0x48], edi
nop
jmp 0x5c9019
mov eax, dword [esp + 0x70]
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], esi
mov dword [esp + 0x8c], edx
jmp 0x5c9042
nop
mov dword [esp], ecx
mov dword [esp + 4], edi
lea eax, [0x660e91]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0xffffffff
call fcn.00473ef0
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
cmp ecx, 1
jne 0x5c8e9f
mov edx, dword [edi + 4]
test edx, edx
jne 0x5c8e9f
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x8c]
jmp 0x5c8dec
test ecx, ecx
jbe 0x5c9ae6
mov edx, dword [edi]
mov ebx, dword [edi + 4]
jmp 0x5c9077
mov dword [esp + 0x74], edi
mov dword [esp + 0x34], ecx
mov dword [edi + 4], ebx
mov ebp, dword [0x84c7c0]
test ebp, ebp
jne 0x5c8eca
mov dword [edi], edx
jmp 0x5c8ed1
mov eax, edx
call fcn.0045e710
mov dword [esp], edx
mov dword [esp + 4], ebx
lea eax, [0x660e93]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
call fcn.00475b60
mov ecx, dword [esp + 0x10]
test ecx, ecx
jge 0x5c8f0b
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x8c]
jmp 0x5c8dec
mov ebx, dword [esp + 0x74]
mov edx, dword [ebx + 4]
mov ebp, dword [ebx]
cmp edx, ecx
jb 0x5c9ae1
lea eax, [ecx + 1]
cmp edx, eax
jb 0x5c9ada
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x84], ebp
sub edx, ecx
lea esi, [edx - 1]
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, eax
add esi, ebp
test ecx, ecx
jne 0x5c8f4e
xor eax, eax
jmp 0x5c8f99
mov dword [esp + 0x68], edi
mov dword [esp + 0x78], esi
mov dword [esp + 0x64], edx
mov dword [esp], ebp
mov dword [esp + 4], ecx
lea eax, [0x67b630]
mov dword [esp + 8], eax
mov byte [esp + 0xc], 1
call fcn.00474dd0
mov eax, dword [esp + 0x10]
test eax, eax
setl al
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x84]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x68]
test al, al
je 0x5c8fd2
cmp edi, 1
jle 0x5c8fc9
cmp byte [esi], 0x22
jne 0x5c8fc5
mov eax, ebx
lea ebx, [edx + esi - 2]
cmp byte [ebx], 0x22
jne 0x5c8fcb
add edx, 0xfffffffd
mov ebx, edx
neg edx
sar edx, 0x1f
and edx, 1
add esi, edx
mov edi, ebx
jmp 0x5c8fcb
mov eax, ebx
jmp 0x5c8fcb
mov eax, ebx
xor edx, edx
jmp 0x5c90d3
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x8c]
jmp 0x5c8dec
mov dword [esp + 0x124], edx
mov dword [esp + 0x128], esi
mov dword [esp + 0x12c], ebx
add esp, 0x11c
ret
dec edi
mov eax, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 1
add ecx, edi
mov edi, eax
mov eax, dword [esp + 0x70]
test edi, edi
jle 0x5c8e30
movzx eax, byte [ecx]
cmp al, 0x20
je 0x5c9002
cmp al, 9
je 0x5c9002
cmp al, 0xa
je 0x5c9002
cmp al, 0xd
je 0x5c9002
jmp 0x5c8e2c
dec edi
mov eax, dword [esp + 0x70]
test edi, edi
jle 0x5c8e48
movzx eax, byte [ecx + edi - 1]
cmp al, 0x20
je 0x5c903d
cmp al, 9
je 0x5c903d
cmp al, 0xa
je 0x5c903d
cmp al, 0xd
je 0x5c903d
jmp 0x5c8e48
dec ebx
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, 1
add edx, ebx
mov ebx, ebp
test ebx, ebx
jle 0x5c909d
movzx ebp, byte [edx]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
je 0x5c9068
xchg ebp, eax
cmp al, 9
xchg ebp, eax
je 0x5c9068
xchg ebp, eax
cmp al, 0xa
xchg ebp, eax
je 0x5c9068
xchg ebp, eax
cmp al, 0xd
xchg ebp, eax
je 0x5c9068
jmp 0x5c909d
dec ebx
test ebx, ebx
jle 0x5c8eb1
movzx ebp, byte [edx + ebx - 1]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
je 0x5c909c
xchg ebp, eax
cmp al, 9
xchg ebp, eax
je 0x5c909c
xchg ebp, eax
cmp al, 0xa
xchg ebp, eax
je 0x5c909c
xchg ebp, eax
cmp al, 0xd
xchg ebp, eax
je 0x5c909c
jmp 0x5c8eb1
inc edx
mov ebp, dword [esp + 0x84]
cmp edi, edx
jle 0x5c9119
jbe 0x5c9ad1
movzx ebx, byte [esi + edx]
lea ebp, [ebx - 0x20]
xchg ebp, eax
cmp al, 0x5f
xchg ebp, eax
jae 0x5c9106
cmp bl, 0x22
je 0x5c9102
cmp bl, 0x3b
je 0x5c90fe
cmp bl, 0x5c
jne 0x5c90cb
cmp edi, edx
jmp 0x5c9108
cmp edi, edx
jmp 0x5c9108
cmp edi, edx
jmp 0x5c9108
cmp edi, edx
mov ebp, dword [esp + 0x84]
mov esi, 0
mov edi, 0
jle 0x5c912f
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x8c]
jmp 0x5c8dec
mov dword [esp + 0x38], edi
mov dword [esp + 0x98], esi
lea eax, [0x653be0]
mov dword [esp], eax
call fcn.0040b620
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x4c]
mov dword [eax + 4], ecx
mov ecx, dword [0x84c7c0]
test ecx, ecx
jne 0x5c9168
mov edx, dword [esp + 0x84]
mov dword [eax], edx
jmp 0x5c9178
mov edi, eax
mov eax, dword [esp + 0x84]
call fcn.0045e710
mov eax, edi
mov edx, dword [esp + 0x38]
mov dword [eax + 0xc], edx
mov edx, dword [0x84c7c0]
test edx, edx
jne 0x5c9195
mov edx, dword [esp + 0x98]
mov dword [eax + 8], edx
jmp 0x5c91a8
lea edi, [eax + 8]
mov ecx, eax
mov eax, dword [esp + 0x98]
call fcn.0045e710
mov eax, ecx
mov edx, dword [esp + 0x48]
mov dword [eax + 0x4c], edx
mov edx, dword [0x84c7c0]
test edx, edx
jne 0x5c91c5
mov edx, dword [esp + 0x88]
mov dword [eax + 0x48], edx
jmp 0x5c91d8
lea edi, [eax + 0x48]
mov ecx, eax
mov eax, dword [esp + 0x88]
call fcn.0045e710
mov eax, ecx
mov dword [esp + 0x90], eax
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x34]
mov ebx, 1
jmp 0x5c91f3
inc ebx
mov edx, dword [esp + 0x74]
cmp ebx, ecx
jge 0x5c9301
jae 0x5c9aca
lea edi, [edx + ebx*8]
mov ebp, dword [edi]
mov esi, dword [edi + 4]
jmp 0x5c9395
mov edx, dword [esp + 0x74]
jmp 0x5c93bb
mov edx, dword [esp + 0x74]
lea edx, [edx + ebx*8 + 4]
mov dword [edx], esi
mov edx, dword [0x84c7c0]
test edx, edx
jne 0x5c9231
mov dword [edi], ebp
test esi, esi
jmp 0x5c923e
mov edx, eax
mov eax, ebp
call fcn.0045e710
test esi, esi
mov eax, edx
je 0x5c91ee
mov dword [esp + 0x50], ebx
mov dword [esp + 0x94], edi
mov dword [esp + 0x44], esi
mov dword [esp + 0x80], ebp
mov dword [esp], ebp
mov dword [esp + 4], esi
lea eax, [0x660e93]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
call fcn.00475b60
mov ecx, dword [esp + 0x10]
test ecx, ecx
jl 0x5c92aa
mov edx, dword [esp + 0x44]
cmp edx, ecx
jb 0x5c9ac5
lea eax, [ecx + 1]
cmp edx, eax
jb 0x5c9abe
sub edx, ecx
dec edx
mov ebx, edx
neg edx
sar edx, 0x1f
and edx, eax
mov eax, dword [esp + 0x80]
add edx, eax
jmp 0x5c92b9
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x44]
xor ebx, ebx
xor edx, edx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x7c], edx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.005ad240
movzx eax, byte [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
test al, al
je 0x5c92ed
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x40]
xor eax, eax
jmp 0x5c93e4
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x50]
jmp 0x5c91ee
mov ecx, dword [esp + 0x54]
lea edx, [ecx + 1]
mov ebx, dword [esp + 0x58]
cmp ebx, edx
jb 0x5c9319
mov ebp, dword [esp + 0x8c]
jmp 0x5c935a
lea eax, [0x6340e0]
mov dword [esp], eax
mov ebp, dword [esp + 0x8c]
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.00447700
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
inc eax
mov ecx, dword [esp + 0x54]
mov ebp, edx
mov edx, eax
mov eax, dword [esp + 0x90]
mov esi, dword [0x84c7c0]
lea edi, [ebp + ecx*4]
test esi, esi
jne 0x5c936e
mov dword [ebp + ecx*4], eax
jmp 0x5c9373
call fcn.0045e710
mov eax, ebx
mov ecx, edx
mov edx, ebp
jmp 0x5c8dec
dec esi
mov edx, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 1
add ebp, esi
mov esi, edx
mov edx, dword [esp + 0x74]
test esi, esi
jle 0x5c93bb
movzx edx, byte [ebp]
cmp dl, 0x20
je 0x5c937e
cmp dl, 9
je 0x5c937e
cmp dl, 0xa
je 0x5c937e
cmp dl, 0xd
je 0x5c937e
jmp 0x5c920e
dec esi
mov edx, dword [esp + 0x74]
test esi, esi
jle 0x5c921b
movzx edx, byte [ebp + esi - 1]
cmp dl, 0x20
je 0x5c93b6
cmp dl, 9
je 0x5c93b6
cmp dl, 0xa
je 0x5c93b6
cmp dl, 0xd
je 0x5c93b6
jmp 0x5c9217
inc eax
mov edx, edi
cmp eax, ebp
jge 0x5c942b
jae 0x5c9ab7
movzx esi, byte [ebx + eax]
mov edi, edx
lea edx, [esi - 0x20]
cmp dl, 0x5f
jae 0x5c941d
xchg esi, eax
cmp al, 0x22
xchg esi, eax
je 0x5c9419
xchg esi, eax
cmp al, 0x3b
xchg esi, eax
je 0x5c9415
xchg esi, eax
cmp al, 0x5c
xchg esi, eax
jne 0x5c93e1
cmp eax, ebp
jmp 0x5c941f
cmp eax, ebp
jmp 0x5c941f
cmp eax, ebp
jmp 0x5c941f
cmp eax, ebp
mov ebx, 0
mov ebp, 0
jmp 0x5c942d
mov edi, edx
jge 0x5c94fa
mov eax, dword [esp + 0x90]
mov edx, dword [eax + 0x54]
mov ebx, dword [eax + 0x50]
mov ebp, dword [eax + 0x58]
lea esi, [edx + 1]
mov ecx, edx
mov edx, dword [esp + 0x94]
mov edi, ebx
mov ebx, dword [edx]
mov edx, dword [edx + 4]
cmp ebp, esi
jae 0x5c94c4
mov dword [esp + 0x68], edx
mov dword [esp + 0x98], ebx
lea eax, [0x62f240]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
call fcn.00447700
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x90]
mov dword [ebx + 0x58], edx
mov edx, dword [0x84c7c0]
test edx, edx
jne 0x5c94a8
mov dword [ebx + 0x50], eax
jmp 0x5c94b0
lea edi, [ebx + 0x50]
call fcn.0045e710
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x98]
mov edi, eax
mov eax, dword [esp + 0x90]
lea ebp, [ecx + 1]
mov dword [eax + 0x54], ebp
lea ebp, [edi + ecx*8 + 4]
mov dword [ebp], edx
mov edx, dword [0x84c7c0]
lea edi, [edi + ecx*8]
test edx, edx
jne 0x5c94e2
mov dword [edi], ebx
jmp 0x5c94ed
mov ecx, eax
mov eax, ebx
call fcn.0045e710
mov eax, ecx
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x50]
jmp 0x5c91ee
cmp ecx, 6
jg 0x5c95c5
cmp ecx, 4
jne 0x5c9548
cmp dword [edi], 0x68746170
jne 0x5c99e9
mov eax, dword [esp + 0x90]
mov dword [eax + 0x14], ebp
mov edx, dword [0x84c7c0]
test edx, edx
jne 0x5c952d
mov dword [eax + 0x10], ebx
jmp 0x5c953b
lea edi, [eax + 0x10]
mov ecx, eax
mov eax, ebx
call fcn.0045e710
mov eax, ecx
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x50]
jmp 0x5c91ee
cmp ecx, 6
jne 0x5c99e9
cmp dword [edi], 0x616d6f64
jne 0x5c9595
cmp word [edi + 4], 0x6e69
jne 0x5c9595
mov eax, dword [esp + 0x90]
mov dword [eax + 0x1c], ebp
mov edx, dword [0x84c7c0]
test edx, edx
jne 0x5c957a
mov dword [eax + 0x18], ebx
jmp 0x5c9588
lea edi, [eax + 0x18]
mov ecx, eax
mov eax, ebx
call fcn.0045e710
mov eax, ecx
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x50]
jmp 0x5c91ee
cmp dword [edi], 0x75636573
jne 0x5c99e9
cmp word [edi + 4], 0x6572
jne 0x5c99e9
mov eax, dword [esp + 0x90]
mov byte [eax + 0x40], 1
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x50]
jmp 0x5c91ee
cmp ecx, 7
jne 0x5c98e7
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x7c], ebx
cmp dword [edi], 0x69707865
jne 0x5c986a
cmp word [edi + 4], 0x6572
jne 0x5c986a
cmp byte [edi + 6], 0x73
jne 0x5c986a
mov ecx, dword [esp + 0x90]
mov dword [ecx + 0x38], ebp
mov edx, dword [0x84c7c0]
test edx, edx
jne 0x5c9611
mov dword [ecx + 0x34], ebx
jmp 0x5c961b
lea edi, [ecx + 0x34]
mov eax, ebx
call fcn.0045e710
lea edi, [esp + 0x108]
xor eax, eax
call fcn.0045e9bb
lea edi, [esp + 0xe0]
call fcn.0045e9bb
mov ecx, dword [0x81f330]
mov edx, dword [0x81f32c]
lea esi, [0x66a426]
mov dword [esp], esi
mov dword [esp + 4], 0x1d
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.004ad100
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x60], ecx
lea edi, [esp + 0xe0]
lea esi, [esp + 0x18]
call fcn.0045ee9e
lea edi, [esp + 0x108]
lea esi, [esp + 0xe0]
call fcn.0045ee9e
lea edi, [esp + 0xcc]
lea esi, [esp + 0x108]
call fcn.0045ee9e
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x5c9782
lea edi, [esp + 0xf4]
xor eax, eax
call fcn.0045e9bb
lea edi, [esp + 0xe0]
call fcn.0045e9bb
mov ecx, dword [0x81f330]
mov edx, dword [0x81f32c]
lea ebx, [0x66a443]
mov dword [esp], ebx
mov dword [esp + 4], 0x1d
mov ebp, dword [esp + 0x7c]
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.004ad100
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x5c], ecx
lea edi, [esp + 0xe0]
lea esi, [esp + 0x18]
call fcn.0045ee9e
lea edi, [esp + 0xf4]
lea esi, [esp + 0xe0]
call fcn.0045ee9e
lea edi, [esp + 0xcc]
lea esi, [esp + 0xf4]
call fcn.0045ee9e
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je 0x5c9782
mov ecx, dword [esp + 0x90]
lea edi, [ecx + 0x20]
mov edx, dword [0x84c7c0]
test edx, edx
jne 0x5c976b
xor eax, eax
call fcn.0045e9bb
jmp 0x5c99e9
lea eax, [0x65e940]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00410e00
jmp 0x5c99e9
lea edi, [esp + 0xb8]
lea esi, [esp + 0xcc]
call fcn.0045ee9e
nop
nop
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xbc]
test edx, 0x80000000
je 0x5c97f9
shl edx, 1
mov ebx, ecx
shr ecx, 0x1f
or ecx, edx
shl ebx, 1
mov edx, ecx
shl ecx, 1
shr ebx, 0x1f
or ebx, ecx
mov ecx, ebx
add ebx, 0xd7b17f80
mov dword [esp + 0xc0], ebx
shr edx, 0x1f
add ecx, 0xd7b17f80
adc edx, 0xd
mov dword [esp + 0xc4], edx
and dword [esp + 0xb8], 0x3fffffff
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc8], 0
lea edi, [esp + 0xa4]
lea esi, [esp + 0xb8]
call fcn.0045ee9e
mov eax, dword [esp + 0x90]
lea edi, [eax + 0x20]
mov ecx, dword [0x84c7c0]
test ecx, ecx
jne 0x5c9839
lea esi, [esp + 0xa4]
call fcn.0045ee9e
jmp 0x5c985d
lea eax, [0x65e940]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xa4]
mov dword [esp + 8], eax
call fcn.00410c20
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x50]
jmp 0x5c91ee
cmp dword [edi], 0x2d78616d
jne 0x5c99e9
cmp word [edi + 4], 0x6761
jne 0x5c99e9
cmp byte [edi + 6], 0x65
jne 0x5c99e9
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.0047caa0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
test ecx, ecx
jne 0x5c99e9
test eax, eax
je 0x5c98c9
mov ecx, dword [esp + 0x3c]
test ecx, ecx
jbe 0x5c9ab0
mov edx, dword [esp + 0x7c]
cmp byte [edx], 0x30
je 0x5c99e9
test eax, eax
jg 0x5c98ce
mov eax, 0xffffffff
mov edx, dword [esp + 0x90]
mov dword [edx + 0x3c], eax
mov eax, edx
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x50]
jmp 0x5c91ee
cmp ecx, 8
jne 0x5c99e9
cmp dword [edi], 0x70747468
jne 0x5c9919
cmp dword [edi + 4], 0x796c6e6f
jne 0x5c9919
mov eax, dword [esp + 0x90]
mov byte [eax + 0x41], 1
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x50]
jmp 0x5c91ee
cmp dword [edi], 0x656d6173
jne 0x5c99e9
cmp dword [edi + 4], 0x65746973
jne 0x5c99e9
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.005ad240
movzx eax, byte [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
test al, al
je 0x5c99ce
cmp ecx, 3
jne 0x5c9971
cmp word [edx], 0x616c
jne 0x5c99b3
cmp byte [edx + 2], 0x78
jne 0x5c99b3
mov eax, dword [esp + 0x90]
mov dword [eax + 0x44], 2
jmp 0x5c99c1
cmp ecx, 4
jne 0x5c998e
cmp dword [edx], 0x656e6f6e
jne 0x5c99b3
mov eax, dword [esp + 0x90]
mov dword [eax + 0x44], 4
jmp 0x5c99c1
cmp ecx, 6
jne 0x5c99b3
cmp dword [edx], 0x69727473
jne 0x5c99b3
cmp word [edx + 4], 0x7463
jne 0x5c99b3
mov eax, dword [esp + 0x90]
mov dword [eax + 0x44], 3
jmp 0x5c99c1
mov eax, dword [esp + 0x90]
mov dword [eax + 0x44], 1
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x50]
jmp 0x5c91ee
mov eax, dword [esp + 0x90]
mov dword [eax + 0x44], 1
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x50]
jmp 0x5c91ee
mov eax, dword [esp + 0x90]
mov edx, dword [eax + 0x54]
mov ebx, dword [eax + 0x50]
mov ebp, dword [eax + 0x58]
lea esi, [edx + 1]
mov ecx, edx
mov edx, dword [esp + 0x94]
mov edi, ebx
mov ebx, dword [edx]
mov edx, dword [edx + 4]
cmp ebp, esi
jae 0x5c9a7a
mov dword [esp + 0x68], edx
mov dword [esp + 0x98], ebx
lea eax, [0x62f240]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
call fcn.00447700
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x90]
mov dword [ebx + 0x58], edx
mov edx, dword [0x84c7c0]
test edx, edx
jne 0x5c9a5e
mov dword [ebx + 0x50], eax
jmp 0x5c9a66
lea edi, [ebx + 0x50]
call fcn.0045e710
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x98]
mov edi, eax
mov eax, dword [esp + 0x90]
lea ebp, [ecx + 1]
mov dword [eax + 0x54], ebp
lea ebp, [edi + ecx*8 + 4]
mov dword [ebp], edx
mov edx, dword [0x84c7c0]
lea edi, [edi + ecx*8]
test edx, edx
jne 0x5c9a98
mov dword [edi], ebx
jmp 0x5c9aa3
mov ecx, eax
mov eax, ebx
call fcn.0045e710
mov eax, ecx
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x50]
jmp 0x5c91ee
xor eax, eax
call fcn.0045e790
mov ecx, ebp
call fcn.0045e790
mov ecx, edx
call fcn.0045e7f0
call fcn.0045e7b0
mov eax, ebx
call fcn.0045e790
mov eax, edx
mov ecx, edi
call fcn.0045e790
mov ecx, edx
call fcn.0045e7f0
call fcn.0045e7b0
xor eax, eax
call fcn.0045e790
nop
call fcn.0045d2d0
jmp fcn.005c8cf0