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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x90]
cmp eax, dword [ecx + 8]
jbe 0x5d1ff9
sub esp, 0x110
lea eax, [0x6592c0]
mov dword [esp], eax
mov ecx, dword [esp + 0x114]
mov dword [esp + 4], ecx
lea edx, [0x663d92]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0xa
call fcn.0040f950
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
test eax, eax
je 0x5d1372
mov dword [esp + 0x54], eax
lea ecx, [0x63ece0]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], eax
call fcn.004483e0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x94], eax
lea ecx, [0x6592c0]
mov dword [esp], ecx
mov ecx, dword [esp + 0x114]
mov dword [esp + 4], ecx
lea ecx, [0x663d92]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0xa
call fcn.0040f950
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov dword [esp + 0x90], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x60], eax
mov edx, dword [esp + 0x94]
mov ebx, dword [esp + 0x54]
xor ebp, ebp
xor esi, esi
jmp 0x5d13bb
lea eax, [0x84e290]
mov dword [esp + 0x118], eax
mov dword [esp + 0x11c], 0
mov dword [esp + 0x120], 0
add esp, 0x110
ret
mov edi, dword [esp + 0x5c]
lea ebp, [edi + 1]
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x90]
mov esi, ecx
mov ebx, eax
mov eax, edi
mov ecx, dword [esp + 0x90]
cmp ebp, eax
jge 0x5d155d
lea edi, [ecx + ebp*8]
mov ecx, dword [edi]
mov dword [esp + 0x7c], ecx
mov edi, dword [edi + 4]
mov dword [esp + 0x48], edi
nop
jmp 0x5d1590
mov eax, dword [esp + 0x60]
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x54], ebx
mov dword [esp + 0x50], esi
mov dword [esp + 0x80], edx
jmp 0x5d15b9
nop
mov dword [esp], ecx
mov dword [esp + 4], edi
lea eax, [0x662553]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0xffffffff
call fcn.004beb40
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
cmp ecx, 1
jne 0x5d144c
mov edx, dword [edi + 4]
test edx, edx
jne 0x5d144c
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x80]
jmp 0x5d139c
test ecx, ecx
jbe 0x5d1ff1
mov edx, dword [edi]
mov ebx, dword [edi + 4]
jmp 0x5d15ee
mov dword [esp + 0x34], ecx
mov dword [esp + 0x6c], edi
mov dword [edi + 4], ebx
mov ebp, dword [0x84e4b0]
test ebp, ebp
jne 0x5d1477
mov dword [edi], edx
jmp 0x5d147e
mov eax, edx
call fcn.0045f3a0
mov dword [esp], edx
mov dword [esp + 4], ebx
lea eax, [0x662554]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
call fcn.004c0b80
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x20]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
test cl, cl
je 0x5d1549
mov dword [esp + 0x78], eax
mov dword [esp + 0x44], edx
test edx, edx
jne 0x5d14c9
xor ecx, ecx
jmp 0x5d1502
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x70], ebx
mov dword [esp], eax
mov dword [esp + 4], edx
lea ecx, [0x67cae4]
mov dword [esp + 8], ecx
call fcn.004bfac0
mov eax, dword [esp + 0xc]
test eax, eax
setl al
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x3c]
mov ecx, eax
mov eax, dword [esp + 0x78]
test cl, cl
je 0x5d1535
cmp ebp, 1
jle 0x5d152e
cmp byte [ebx], 0x22
jne 0x5d152e
lea esi, [ebp + ebx - 1]
cmp byte [esi], 0x22
jne 0x5d152e
add ebp, 0xfffffffe
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 1
add ebx, ebp
mov ebp, esi
xor ecx, ecx
jmp 0x5d1643
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x80]
jmp 0x5d139c
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x80]
jmp 0x5d139c
mov dword [esp + 0x118], edx
mov dword [esp + 0x11c], esi
mov dword [esp + 0x120], ebx
add esp, 0x110
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 + 0x60]
test edi, edi
je 0x5d13dd
movzx eax, byte [ecx]
cmp al, 0x20
je 0x5d1579
cmp al, 9
je 0x5d1579
cmp al, 0xa
je 0x5d1579
cmp al, 0xd
je 0x5d1579
jmp 0x5d13d9
dec edi
mov eax, dword [esp + 0x60]
test edi, edi
je 0x5d13f5
movzx eax, byte [ecx + edi - 1]
cmp al, 0x20
je 0x5d15b4
cmp al, 9
je 0x5d15b4
cmp al, 0xa
je 0x5d15b4
cmp al, 0xd
je 0x5d15b4
jmp 0x5d13f5
dec ebx
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, 1
add edx, ebx
mov ebx, ebp
test ebx, ebx
je 0x5d1614
movzx ebp, byte [edx]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
je 0x5d15df
xchg ebp, eax
cmp al, 9
xchg ebp, eax
je 0x5d15df
xchg ebp, eax
cmp al, 0xa
xchg ebp, eax
je 0x5d15df
xchg ebp, eax
cmp al, 0xd
xchg ebp, eax
je 0x5d15df
jmp 0x5d1614
dec ebx
test ebx, ebx
je 0x5d145e
movzx ebp, byte [edx + ebx - 1]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
je 0x5d1613
xchg ebp, eax
cmp al, 9
xchg ebp, eax
je 0x5d1613
xchg ebp, eax
cmp al, 0xa
xchg ebp, eax
je 0x5d1613
xchg ebp, eax
cmp al, 0xd
xchg ebp, eax
je 0x5d1613
jmp 0x5d145e
inc ecx
cmp ebp, ecx
jle 0x5d1688
jbe 0x5d1fe8
movzx esi, byte [ebx + ecx]
lea edi, [esi - 0x20]
xchg edi, eax
cmp al, 0x5f
xchg edi, eax
jae 0x5d167c
xchg esi, eax
cmp al, 0x22
xchg esi, eax
je 0x5d1678
xchg esi, eax
cmp al, 0x3b
xchg esi, eax
je 0x5d1674
xchg esi, eax
cmp al, 0x5c
xchg esi, eax
jne 0x5d1642
cmp ebp, ecx
jmp 0x5d167e
cmp ebp, ecx
jmp 0x5d167e
cmp ebp, ecx
jmp 0x5d167e
cmp ebp, ecx
mov ebx, 0
mov ebp, 0
jle 0x5d169e
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x80]
jmp 0x5d139c
mov dword [esp + 0x58], ebp
mov dword [esp + 0x8c], ebx
lea eax, [0x656320]
mov dword [esp], eax
call fcn.0040b470
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x44]
mov dword [eax + 4], ecx
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x5d16d4
mov edx, dword [esp + 0x78]
mov dword [eax], edx
jmp 0x5d16e1
mov edi, eax
mov eax, dword [esp + 0x78]
call fcn.0045f3a0
mov eax, edi
mov edx, dword [esp + 0x58]
mov dword [eax + 0xc], edx
mov edx, dword [0x84e4b0]
test edx, edx
jne 0x5d16fe
mov edx, dword [esp + 0x8c]
mov dword [eax + 8], edx
jmp 0x5d1711
lea edi, [eax + 8]
mov ecx, eax
mov eax, dword [esp + 0x8c]
call fcn.0045f3a0
mov eax, ecx
mov edx, dword [esp + 0x48]
mov dword [eax + 0x4c], edx
mov edx, dword [0x84e4b0]
test edx, edx
jne 0x5d172b
mov edx, dword [esp + 0x7c]
mov dword [eax + 0x48], edx
jmp 0x5d173b
lea edi, [eax + 0x48]
mov ecx, eax
mov eax, dword [esp + 0x7c]
call fcn.0045f3a0
mov eax, ecx
mov dword [esp + 0x84], eax
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x34]
mov ebx, 1
jmp 0x5d1756
inc ebx
mov edx, dword [esp + 0x6c]
cmp ebx, ecx
jge 0x5d1824
jae 0x5d1fe1
lea edi, [edx + ebx*8]
mov ebp, dword [edi]
mov esi, dword [edi + 4]
jmp 0x5d18b8
mov edx, dword [esp + 0x6c]
jmp 0x5d18de
mov edx, dword [esp + 0x6c]
lea edx, [edx + ebx*8 + 4]
mov dword [edx], esi
mov edx, dword [0x84e4b0]
test edx, edx
jne 0x5d1794
mov dword [edi], ebp
test esi, esi
jmp 0x5d17a1
mov edx, eax
mov eax, ebp
call fcn.0045f3a0
test esi, esi
mov eax, edx
je 0x5d1751
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x88], edi
mov dword [esp], ebp
mov dword [esp + 4], esi
lea eax, [0x662554]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
call fcn.004c0b80
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x40], edx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x74], ebx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.005ae3d0
movzx eax, byte [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
test al, al
je 0x5d1810
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x40]
xor eax, eax
jmp 0x5d1907
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x4c]
jmp 0x5d1751
mov ecx, dword [esp + 0x50]
lea edx, [ecx + 1]
mov ebx, dword [esp + 0x54]
cmp ebx, edx
jb 0x5d183c
mov ebp, dword [esp + 0x80]
jmp 0x5d187d
lea eax, [0x63ece0]
mov dword [esp], eax
mov ebp, dword [esp + 0x80]
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.004484a0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
inc eax
mov ecx, dword [esp + 0x50]
mov ebp, edx
mov edx, eax
mov eax, dword [esp + 0x84]
mov esi, dword [0x84e4b0]
lea edi, [ebp + ecx*4]
test esi, esi
jne 0x5d1891
mov dword [ebp + ecx*4], eax
jmp 0x5d1896
call fcn.0045f3a0
mov eax, ebx
mov ecx, edx
mov edx, ebp
jmp 0x5d139c
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 + 0x6c]
test esi, esi
je 0x5d18de
movzx edx, byte [ebp]
cmp dl, 0x20
je 0x5d18a1
cmp dl, 9
je 0x5d18a1
cmp dl, 0xa
je 0x5d18a1
cmp dl, 0xd
je 0x5d18a1
jmp 0x5d1771
dec esi
mov edx, dword [esp + 0x6c]
test esi, esi
je 0x5d177e
movzx edx, byte [ebp + esi - 1]
cmp dl, 0x20
je 0x5d18d9
cmp dl, 9
je 0x5d18d9
cmp dl, 0xa
je 0x5d18d9
cmp dl, 0xd
je 0x5d18d9
jmp 0x5d177a
inc eax
mov edx, edi
cmp eax, ebp
jge 0x5d194e
jae 0x5d1fda
movzx esi, byte [eax + ebx]
mov edi, edx
lea edx, [esi - 0x20]
cmp dl, 0x5f
jae 0x5d1940
xchg esi, eax
cmp al, 0x22
xchg esi, eax
je 0x5d193c
xchg esi, eax
cmp al, 0x3b
xchg esi, eax
je 0x5d1938
xchg esi, eax
cmp al, 0x5c
xchg esi, eax
jne 0x5d1904
cmp eax, ebp
jmp 0x5d1942
cmp eax, ebp
jmp 0x5d1942
cmp eax, ebp
jmp 0x5d1942
cmp eax, ebp
mov ebx, 0
mov ebp, 0
jmp 0x5d1950
mov edi, edx
jge 0x5d1a1d
mov eax, dword [esp + 0x84]
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 + 0x88]
mov edi, ebx
mov ebx, dword [edx]
mov edx, dword [edx + 4]
cmp ebp, esi
jae 0x5d19e7
mov dword [esp + 0x58], edx
mov dword [esp + 0x8c], ebx
lea eax, [0x634440]
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.004484a0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x84]
mov dword [ebx + 0x58], edx
mov edx, dword [0x84e4b0]
test edx, edx
jne 0x5d19cb
mov dword [ebx + 0x50], eax
jmp 0x5d19d3
lea edi, [ebx + 0x50]
call fcn.0045f3a0
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x8c]
mov edi, eax
mov eax, dword [esp + 0x84]
lea ebp, [ecx + 1]
mov dword [eax + 0x54], ebp
lea ebp, [edi + ecx*8 + 4]
mov dword [ebp], edx
mov edx, dword [0x84e4b0]
lea edi, [edi + ecx*8]
test edx, edx
jne 0x5d1a05
mov dword [edi], ebx
jmp 0x5d1a10
mov ecx, eax
mov eax, ebx
call fcn.0045f3a0
mov eax, ecx
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x4c]
jmp 0x5d1751
cmp ecx, 6
jg 0x5d1ae8
cmp ecx, 4
jne 0x5d1a6b
cmp dword [edi], 0x68746170
jne 0x5d1f0c
mov eax, dword [esp + 0x84]
mov dword [eax + 0x14], ebp
mov edx, dword [0x84e4b0]
test edx, edx
jne 0x5d1a50
mov dword [eax + 0x10], ebx
jmp 0x5d1a5e
lea edi, [eax + 0x10]
mov ecx, eax
mov eax, ebx
call fcn.0045f3a0
mov eax, ecx
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x4c]
jmp 0x5d1751
cmp ecx, 6
jne 0x5d1f0c
cmp dword [edi], 0x616d6f64
jne 0x5d1ab8
cmp word [edi + 4], 0x6e69
jne 0x5d1ab8
mov eax, dword [esp + 0x84]
mov dword [eax + 0x1c], ebp
mov edx, dword [0x84e4b0]
test edx, edx
jne 0x5d1a9d
mov dword [eax + 0x18], ebx
jmp 0x5d1aab
lea edi, [eax + 0x18]
mov ecx, eax
mov eax, ebx
call fcn.0045f3a0
mov eax, ecx
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x4c]
jmp 0x5d1751
cmp dword [edi], 0x75636573
jne 0x5d1f0c
cmp word [edi + 4], 0x6572
jne 0x5d1f0c
mov eax, dword [esp + 0x84]
mov byte [eax + 0x40], 1
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x4c]
jmp 0x5d1751
cmp ecx, 7
jne 0x5d1e0a
mov dword [esp + 0x74], ebx
mov dword [esp + 0x38], ebp
cmp dword [edi], 0x69707865
jne 0x5d1d8d
cmp word [edi + 4], 0x6572
jne 0x5d1d8d
cmp byte [edi + 6], 0x73
jne 0x5d1d8d
mov ecx, dword [esp + 0x84]
mov dword [ecx + 0x38], ebp
mov edx, dword [0x84e4b0]
test edx, edx
jne 0x5d1b34
mov dword [ecx + 0x34], ebx
jmp 0x5d1b3e
lea edi, [ecx + 0x34]
mov eax, ebx
call fcn.0045f3a0
lea edi, [esp + 0xfc]
xor eax, eax
call fcn.0045f63b
lea edi, [esp + 0xd4]
call fcn.0045f63b
mov ecx, dword [0x820f0c]
mov edx, dword [0x820f08]
lea esi, [0x66c6f8]
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.0049d6d0
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x68], ecx
lea edi, [esp + 0xd4]
lea esi, [esp + 0x18]
call fcn.0045fb1e
lea edi, [esp + 0xfc]
lea esi, [esp + 0xd4]
call fcn.0045fb1e
lea edi, [esp + 0xc0]
lea esi, [esp + 0xfc]
call fcn.0045fb1e
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x5d1ca5
lea edi, [esp + 0xe8]
xor eax, eax
call fcn.0045f63b
lea edi, [esp + 0xd4]
call fcn.0045f63b
mov ecx, dword [0x820f0c]
mov edx, dword [0x820f08]
lea ebx, [0x66c715]
mov dword [esp], ebx
mov dword [esp + 4], 0x1d
mov ebp, dword [esp + 0x74]
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x38]
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.0049d6d0
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x64], ecx
lea edi, [esp + 0xd4]
lea esi, [esp + 0x18]
call fcn.0045fb1e
lea edi, [esp + 0xe8]
lea esi, [esp + 0xd4]
call fcn.0045fb1e
lea edi, [esp + 0xc0]
lea esi, [esp + 0xe8]
call fcn.0045fb1e
mov ecx, dword [esp + 0x64]
test ecx, ecx
je 0x5d1ca5
mov ecx, dword [esp + 0x84]
lea edi, [ecx + 0x20]
mov edx, dword [0x84e4b0]
test edx, edx
jne 0x5d1c8e
xor eax, eax
call fcn.0045f63b
jmp 0x5d1f0c
lea eax, [0x65fe80]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00410c40
jmp 0x5d1f0c
lea edi, [esp + 0xac]
lea esi, [esp + 0xc0]
call fcn.0045fb1e
nop
nop
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xb0]
test edx, 0x80000000
je 0x5d1d1c
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 ecx, ebx
mov ebx, ecx
add ecx, 0xd7b17f80
mov dword [esp + 0xb4], ecx
shr edx, 0x1f
add ebx, 0xd7b17f80
adc edx, 0xd
mov dword [esp + 0xb8], edx
and dword [esp + 0xac], 0x3fffffff
mov dword [esp + 0xb0], 0
mov dword [esp + 0xbc], 0
lea edi, [esp + 0x98]
lea esi, [esp + 0xac]
call fcn.0045fb1e
mov eax, dword [esp + 0x84]
lea edi, [eax + 0x20]
mov ecx, dword [0x84e4b0]
test ecx, ecx
jne 0x5d1d5c
lea esi, [esp + 0x98]
call fcn.0045fb1e
jmp 0x5d1d80
lea eax, [0x65fe80]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x98]
mov dword [esp + 8], eax
call fcn.00410a60
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x4c]
jmp 0x5d1751
cmp dword [edi], 0x2d78616d
jne 0x5d1f0c
cmp word [edi + 4], 0x6761
jne 0x5d1f0c
cmp byte [edi + 6], 0x65
jne 0x5d1f0c
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.00467150
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
test ecx, ecx
jne 0x5d1f0c
test eax, eax
je 0x5d1dec
mov ecx, dword [esp + 0x38]
test ecx, ecx
jbe 0x5d1fd3
mov edx, dword [esp + 0x74]
cmp byte [edx], 0x30
je 0x5d1f0c
test eax, eax
jg 0x5d1df1
mov eax, 0xffffffff
mov edx, dword [esp + 0x84]
mov dword [edx + 0x3c], eax
mov eax, edx
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x4c]
jmp 0x5d1751
cmp ecx, 8
jne 0x5d1f0c
cmp dword [edi], 0x70747468
jne 0x5d1e3c
cmp dword [edi + 4], 0x796c6e6f
jne 0x5d1e3c
mov eax, dword [esp + 0x84]
mov byte [eax + 0x41], 1
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x4c]
jmp 0x5d1751
cmp dword [edi], 0x656d6173
jne 0x5d1f0c
cmp dword [edi + 4], 0x65746973
jne 0x5d1f0c
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.005ae3d0
movzx eax, byte [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
test al, al
je 0x5d1ef1
cmp ecx, 3
jne 0x5d1e94
cmp word [edx], 0x616c
jne 0x5d1ed6
cmp byte [edx + 2], 0x78
jne 0x5d1ed6
mov eax, dword [esp + 0x84]
mov dword [eax + 0x44], 2
jmp 0x5d1ee4
cmp ecx, 4
jne 0x5d1eb1
cmp dword [edx], 0x656e6f6e
jne 0x5d1ed6
mov eax, dword [esp + 0x84]
mov dword [eax + 0x44], 4
jmp 0x5d1ee4
cmp ecx, 6
jne 0x5d1ed6
cmp dword [edx], 0x69727473
jne 0x5d1ed6
cmp word [edx + 4], 0x7463
jne 0x5d1ed6
mov eax, dword [esp + 0x84]
mov dword [eax + 0x44], 3
jmp 0x5d1ee4
mov eax, dword [esp + 0x84]
mov dword [eax + 0x44], 1
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x4c]
jmp 0x5d1751
mov eax, dword [esp + 0x84]
mov dword [eax + 0x44], 1
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x4c]
jmp 0x5d1751
mov eax, dword [esp + 0x84]
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 + 0x88]
mov edi, ebx
mov ebx, dword [edx]
mov edx, dword [edx + 4]
cmp ebp, esi
jae 0x5d1f9d
mov dword [esp + 0x58], edx
mov dword [esp + 0x8c], ebx
lea eax, [0x634440]
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.004484a0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x84]
mov dword [ebx + 0x58], edx
mov edx, dword [0x84e4b0]
test edx, edx
jne 0x5d1f81
mov dword [ebx + 0x50], eax
jmp 0x5d1f89
lea edi, [ebx + 0x50]
call fcn.0045f3a0
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x8c]
mov edi, eax
mov eax, dword [esp + 0x84]
lea ebp, [ecx + 1]
mov dword [eax + 0x54], ebp
lea ebp, [edi + ecx*8 + 4]
mov dword [ebp], edx
mov edx, dword [0x84e4b0]
lea edi, [edi + ecx*8]
test edx, edx
jne 0x5d1fbb
mov dword [edi], ebx
jmp 0x5d1fc6
mov ecx, eax
mov eax, ebx
call fcn.0045f3a0
mov eax, ecx
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x4c]
jmp 0x5d1751
xor eax, eax
call fcn.0045f420
mov ecx, ebp
call fcn.0045f420
mov eax, ebx
call fcn.0045f420
mov eax, ecx
mov ecx, ebp
call fcn.0045f420
xor eax, eax
call fcn.0045f420
nop
call fcn.0045df90
jmp fcn.005d12a0