Function at 0x5d11a0
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 0x5d1ef9
sub esp, 0x110
lea eax, [0x6592c0]
mov dword [esp], eax
mov ecx, dword [esp + 0x114]
mov dword [esp + 4], ecx
lea edx, [0x663d8f]
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 0x5d1272
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, [0x663d8f]
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 0x5d12bb
lea eax, [0x84f230]
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 0x5d145d
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 0x5d1490
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 0x5d14b9
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.004bea10
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
cmp ecx, 1
jne 0x5d134c
mov edx, dword [edi + 4]
test edx, edx
jne 0x5d134c
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x80]
jmp 0x5d129c
test ecx, ecx
jbe 0x5d1ef1
mov edx, dword [edi]
mov ebx, dword [edi + 4]
jmp 0x5d14ee
mov dword [esp + 0x34], ecx
mov dword [esp + 0x6c], edi
mov dword [edi + 4], ebx
mov ebp, dword [0x84f450]
test ebp, ebp
jne 0x5d1377
mov dword [edi], edx
jmp 0x5d137e
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.004c0a50
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 0x5d1449
mov dword [esp + 0x78], eax
mov dword [esp + 0x44], edx
test edx, edx
jne 0x5d13c9
xor ecx, ecx
jmp 0x5d1402
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x70], ebx
mov dword [esp], eax
mov dword [esp + 4], edx
lea ecx, [0x67cb6c]
mov dword [esp + 8], ecx
call fcn.004bf990
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 0x5d1435
cmp ebp, 1
jle 0x5d142e
cmp byte [ebx], 0x22
jne 0x5d142e
lea esi, [ebp + ebx - 1]
cmp byte [esi], 0x22
jne 0x5d142e
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 0x5d1543
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x80]
jmp 0x5d129c
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x80]
jmp 0x5d129c
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 0x5d12dd
movzx eax, byte [ecx]
cmp al, 0x20
je 0x5d1479
cmp al, 9
je 0x5d1479
cmp al, 0xa
je 0x5d1479
cmp al, 0xd
je 0x5d1479
jmp 0x5d12d9
dec edi
mov eax, dword [esp + 0x60]
test edi, edi
je 0x5d12f5
movzx eax, byte [ecx + edi - 1]
cmp al, 0x20
je 0x5d14b4
cmp al, 9
je 0x5d14b4
cmp al, 0xa
je 0x5d14b4
cmp al, 0xd
je 0x5d14b4
jmp 0x5d12f5
dec ebx
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, 1
add edx, ebx
mov ebx, ebp
test ebx, ebx
je 0x5d1514
movzx ebp, byte [edx]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
je 0x5d14df
xchg ebp, eax
cmp al, 9
xchg ebp, eax
je 0x5d14df
xchg ebp, eax
cmp al, 0xa
xchg ebp, eax
je 0x5d14df
xchg ebp, eax
cmp al, 0xd
xchg ebp, eax
je 0x5d14df
jmp 0x5d1514
dec ebx
test ebx, ebx
je 0x5d135e
movzx ebp, byte [edx + ebx - 1]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
je 0x5d1513
xchg ebp, eax
cmp al, 9
xchg ebp, eax
je 0x5d1513
xchg ebp, eax
cmp al, 0xa
xchg ebp, eax
je 0x5d1513
xchg ebp, eax
cmp al, 0xd
xchg ebp, eax
je 0x5d1513
jmp 0x5d135e
inc ecx
cmp ebp, ecx
jle 0x5d1588
jbe 0x5d1ee8
movzx esi, byte [ebx + ecx]
lea edi, [esi - 0x20]
xchg edi, eax
cmp al, 0x5f
xchg edi, eax
jae 0x5d157c
xchg esi, eax
cmp al, 0x22
xchg esi, eax
je 0x5d1578
xchg esi, eax
cmp al, 0x3b
xchg esi, eax
je 0x5d1574
xchg esi, eax
cmp al, 0x5c
xchg esi, eax
jne 0x5d1542
cmp ebp, ecx
jmp 0x5d157e
cmp ebp, ecx
jmp 0x5d157e
cmp ebp, ecx
jmp 0x5d157e
cmp ebp, ecx
mov ebx, 0
mov ebp, 0
jle 0x5d159e
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x80]
jmp 0x5d129c
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 [0x84f450]
test ecx, ecx
jne 0x5d15d4
mov edx, dword [esp + 0x78]
mov dword [eax], edx
jmp 0x5d15e1
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 [0x84f450]
test edx, edx
jne 0x5d15fe
mov edx, dword [esp + 0x8c]
mov dword [eax + 8], edx
jmp 0x5d1611
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 [0x84f450]
test edx, edx
jne 0x5d162b
mov edx, dword [esp + 0x7c]
mov dword [eax + 0x48], edx
jmp 0x5d163b
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 0x5d1656
inc ebx
mov edx, dword [esp + 0x6c]
cmp ebx, ecx
jge 0x5d1724
jae 0x5d1ee1
lea edi, [edx + ebx*8]
mov ebp, dword [edi]
mov esi, dword [edi + 4]
jmp 0x5d17b8
mov edx, dword [esp + 0x6c]
jmp 0x5d17de
mov edx, dword [esp + 0x6c]
lea edx, [edx + ebx*8 + 4]
mov dword [edx], esi
mov edx, dword [0x84f450]
test edx, edx
jne 0x5d1694
mov dword [edi], ebp
test esi, esi
jmp 0x5d16a1
mov edx, eax
mov eax, ebp
call fcn.0045f3a0
test esi, esi
mov eax, edx
je 0x5d1651
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.004c0a50
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.005ae2d0
movzx eax, byte [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
test al, al
je 0x5d1710
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x40]
xor eax, eax
jmp 0x5d1807
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x4c]
jmp 0x5d1651
mov ecx, dword [esp + 0x50]
lea edx, [ecx + 1]
mov ebx, dword [esp + 0x54]
cmp ebx, edx
jb 0x5d173c
mov ebp, dword [esp + 0x80]
jmp 0x5d177d
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 [0x84f450]
lea edi, [ebp + ecx*4]
test esi, esi
jne 0x5d1791
mov dword [ebp + ecx*4], eax
jmp 0x5d1796
call fcn.0045f3a0
mov eax, ebx
mov ecx, edx
mov edx, ebp
jmp 0x5d129c
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 0x5d17de
movzx edx, byte [ebp]
cmp dl, 0x20
je 0x5d17a1
cmp dl, 9
je 0x5d17a1
cmp dl, 0xa
je 0x5d17a1
cmp dl, 0xd
je 0x5d17a1
jmp 0x5d1671
dec esi
mov edx, dword [esp + 0x6c]
test esi, esi
je 0x5d167e
movzx edx, byte [ebp + esi - 1]
cmp dl, 0x20
je 0x5d17d9
cmp dl, 9
je 0x5d17d9
cmp dl, 0xa
je 0x5d17d9
cmp dl, 0xd
je 0x5d17d9
jmp 0x5d167a
inc eax
mov edx, edi
cmp eax, ebp
jge 0x5d184e
jae 0x5d1eda
movzx esi, byte [eax + ebx]
mov edi, edx
lea edx, [esi - 0x20]
cmp dl, 0x5f
jae 0x5d1840
xchg esi, eax
cmp al, 0x22
xchg esi, eax
je 0x5d183c
xchg esi, eax
cmp al, 0x3b
xchg esi, eax
je 0x5d1838
xchg esi, eax
cmp al, 0x5c
xchg esi, eax
jne 0x5d1804
cmp eax, ebp
jmp 0x5d1842
cmp eax, ebp
jmp 0x5d1842
cmp eax, ebp
jmp 0x5d1842
cmp eax, ebp
mov ebx, 0
mov ebp, 0
jmp 0x5d1850
mov edi, edx
jge 0x5d191d
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 0x5d18e7
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 [0x84f450]
test edx, edx
jne 0x5d18cb
mov dword [ebx + 0x50], eax
jmp 0x5d18d3
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 [0x84f450]
lea edi, [edi + ecx*8]
test edx, edx
jne 0x5d1905
mov dword [edi], ebx
jmp 0x5d1910
mov ecx, eax
mov eax, ebx
call fcn.0045f3a0
mov eax, ecx
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x4c]
jmp 0x5d1651
cmp ecx, 6
jg 0x5d19e8
cmp ecx, 4
jne 0x5d196b
cmp dword [edi], 0x68746170
jne 0x5d1e0c
mov eax, dword [esp + 0x84]
mov dword [eax + 0x14], ebp
mov edx, dword [0x84f450]
test edx, edx
jne 0x5d1950
mov dword [eax + 0x10], ebx
jmp 0x5d195e
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 0x5d1651
cmp ecx, 6
jne 0x5d1e0c
cmp dword [edi], 0x616d6f64
jne 0x5d19b8
cmp word [edi + 4], 0x6e69
jne 0x5d19b8
mov eax, dword [esp + 0x84]
mov dword [eax + 0x1c], ebp
mov edx, dword [0x84f450]
test edx, edx
jne 0x5d199d
mov dword [eax + 0x18], ebx
jmp 0x5d19ab
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 0x5d1651
cmp dword [edi], 0x75636573
jne 0x5d1e0c
cmp word [edi + 4], 0x6572
jne 0x5d1e0c
mov eax, dword [esp + 0x84]
mov byte [eax + 0x40], 1
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x4c]
jmp 0x5d1651
cmp ecx, 7
jne 0x5d1d0a
mov dword [esp + 0x74], ebx
mov dword [esp + 0x38], ebp
cmp dword [edi], 0x69707865
jne 0x5d1c8d
cmp word [edi + 4], 0x6572
jne 0x5d1c8d
cmp byte [edi + 6], 0x73
jne 0x5d1c8d
mov ecx, dword [esp + 0x84]
mov dword [ecx + 0x38], ebp
mov edx, dword [0x84f450]
test edx, edx
jne 0x5d1a34
mov dword [ecx + 0x34], ebx
jmp 0x5d1a3e
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 [0x821eac]
mov edx, dword [0x821ea8]
lea esi, [0x66c726]
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 0x5d1ba5
lea edi, [esp + 0xe8]
xor eax, eax
call fcn.0045f63b
lea edi, [esp + 0xd4]
call fcn.0045f63b
mov ecx, dword [0x821eac]
mov edx, dword [0x821ea8]
lea ebx, [0x66c743]
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 0x5d1ba5
mov ecx, dword [esp + 0x84]
lea edi, [ecx + 0x20]
mov edx, dword [0x84f450]
test edx, edx
jne 0x5d1b8e
xor eax, eax
call fcn.0045f63b
jmp 0x5d1e0c
lea eax, [0x65fe80]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00410c40
jmp 0x5d1e0c
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 0x5d1c1c
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 [0x84f450]
test ecx, ecx
jne 0x5d1c5c
lea esi, [esp + 0x98]
call fcn.0045fb1e
jmp 0x5d1c80
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 0x5d1651
cmp dword [edi], 0x2d78616d
jne 0x5d1e0c
cmp word [edi + 4], 0x6761
jne 0x5d1e0c
cmp byte [edi + 6], 0x65
jne 0x5d1e0c
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 0x5d1e0c
test eax, eax
je 0x5d1cec
mov ecx, dword [esp + 0x38]
test ecx, ecx
jbe 0x5d1ed3
mov edx, dword [esp + 0x74]
cmp byte [edx], 0x30
je 0x5d1e0c
test eax, eax
jg 0x5d1cf1
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 0x5d1651
cmp ecx, 8
jne 0x5d1e0c
cmp dword [edi], 0x70747468
jne 0x5d1d3c
cmp dword [edi + 4], 0x796c6e6f
jne 0x5d1d3c
mov eax, dword [esp + 0x84]
mov byte [eax + 0x41], 1
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x4c]
jmp 0x5d1651
cmp dword [edi], 0x656d6173
jne 0x5d1e0c
cmp dword [edi + 4], 0x65746973
jne 0x5d1e0c
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.005ae2d0
movzx eax, byte [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
test al, al
je 0x5d1df1
cmp ecx, 3
jne 0x5d1d94
cmp word [edx], 0x616c
jne 0x5d1dd6
cmp byte [edx + 2], 0x78
jne 0x5d1dd6
mov eax, dword [esp + 0x84]
mov dword [eax + 0x44], 2
jmp 0x5d1de4
cmp ecx, 4
jne 0x5d1db1
cmp dword [edx], 0x656e6f6e
jne 0x5d1dd6
mov eax, dword [esp + 0x84]
mov dword [eax + 0x44], 4
jmp 0x5d1de4
cmp ecx, 6
jne 0x5d1dd6
cmp dword [edx], 0x69727473
jne 0x5d1dd6
cmp word [edx + 4], 0x7463
jne 0x5d1dd6
mov eax, dword [esp + 0x84]
mov dword [eax + 0x44], 3
jmp 0x5d1de4
mov eax, dword [esp + 0x84]
mov dword [eax + 0x44], 1
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x4c]
jmp 0x5d1651
mov eax, dword [esp + 0x84]
mov dword [eax + 0x44], 1
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x4c]
jmp 0x5d1651
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 0x5d1e9d
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 [0x84f450]
test edx, edx
jne 0x5d1e81
mov dword [ebx + 0x50], eax
jmp 0x5d1e89
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 [0x84f450]
lea edi, [edi + ecx*8]
test edx, edx
jne 0x5d1ebb
mov dword [edi], ebx
jmp 0x5d1ec6
mov ecx, eax
mov eax, ebx
call fcn.0045f3a0
mov eax, ecx
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x4c]
jmp 0x5d1651
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.005d11a0