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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x48
push 0
push 0
dec ecx
jne 0x5224f9
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
mov edi, edx
mov dword [ebp - 4], eax
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x1e8]
mov edx, dword [0x51ea94]
call fcn.004052e4
lea esi, [ebp - 0x14]
xor eax, eax
push ebp
push 0x523b6f
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x48]
xor ecx, ecx
mov edx, 0x18
call fcn.00407e20
lea eax, [ebp - 0x1e8]
xor ecx, ecx
mov edx, 0x188
call fcn.00407e20
lea eax, [ebp - 0x60]
xor ecx, ecx
mov edx, 0x18
call fcn.00407e20
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax], edx
xor edx, edx
push ebp
push 0x523b0e
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x44], edi
cmp byte [ebp + 0x10], 0
je 0x522596
mov eax, edi
call fcn.0041e600
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
jmp 0x5225a4
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
lea edx, [ebp - 0x10]
mov ecx, 8
mov eax, edi
mov edi, dword [eax]
call dword [edi + 8]
mov ax, word [ebp - 0x10]
cmp ax, 0x4949
je 0x5225d6
cmp ax, 0x4d4d
je 0x5225d6
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 0x28]
mov byte [eax], 1
call fcn.004042e4
jmp 0x523b18
cmp word [ebp - 0x10], 0x4949
sete al
mov byte [ebp - 0x48], al
mov byte [ebp - 0x74], al
test al, al
jne 0x5225f4
mov eax, dword [ebp - 0xc]
call fcn.005a2884
mov dword [ebp - 0xc], eax
xor eax, eax
mov dword [ebp - 0x40], eax
mov edi, dword [ebp - 0xc]
mov eax, edi
test eax, eax
jne 0x52260c
call fcn.004042e4
jmp 0x523b18
cmp dword [ebp + 0x20], 0
je 0x52261c
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 0x34]
mov dword [esi], eax
jmp 0x522622
mov dword [esi], 0xffffffff
mov eax, dword [ebp - 8]
push eax
lea ecx, [ebp - 0x48]
mov edx, edi
mov eax, dword [esi]
call fcn.005222dc
test al, al
jne 0x522640
call fcn.004042e4
jmp 0x523b18
lea eax, [ebp - 0x48]
xor ecx, ecx
mov edx, 0x8769
call fcn.0051eb38
test eax, eax
jle 0x522684
mov dl, byte [ebp - 0x48]
mov byte [ebp - 0x60], dl
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
push esi
lea ecx, [ebp - 0x60]
mov edx, eax
xor eax, eax
call fcn.005222dc
mov eax, dword [ebp + 0x20]
mov byte [eax + 0x168], 1
lea eax, [ebp - 0x48]
xor ecx, ecx
mov edx, pe_nt_image_headers32
call fcn.0051eb38
mov dword [ebp - 0x1e8], eax
lea eax, [ebp - 0x48]
xor ecx, ecx
mov edx, 0x101
call fcn.0051eb38
mov dword [ebp - 0x1e4], eax
lea eax, [ebp - 0x48]
mov ecx, 1
mov edx, 0x115
call fcn.0051eb38
mov dword [ebp - 0x1e0], eax
lea edx, [ebp - 0x1e8]
lea eax, [ebp - 0x48]
call fcn.0051f7a0
test al, al
jne 0x5226eb
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 0x28]
mov byte [eax], 1
call fcn.004042e4
jmp 0x523b18
lea eax, [ebp - 0x48]
mov ecx, dword [ebp - 0x1e4]
mov edx, 0x116
call fcn.0051eb38
mov edi, eax
mov dword [ebp - 0x1d8], edi
inc edi
jne 0x522715
mov eax, dword [ebp - 0x1e4]
mov dword [ebp - 0x1d8], eax
lea eax, [ebp - 0x48]
or ecx, 0xffffffff
mov edx, 0x142
call fcn.0051eb38
mov dword [ebp - 0x1d4], eax
lea eax, [ebp - 0x48]
or ecx, 0xffffffff
mov edx, 0x143
call fcn.0051eb38
mov dword [ebp - 0x1d0], eax
lea eax, [ebp - 0x48]
mov ecx, 2
mov edx, 0x106
call fcn.0051eb38
mov word [ebp - 0x1cc], ax
lea eax, [ebp - 0x48]
mov ecx, 1
mov edx, 0x11c
call fcn.0051eb38
mov word [ebp - 0x1ca], ax
lea eax, [ebp - 0x48]
mov ecx, 1
mov edx, 0x112
call fcn.0051eb38
mov word [ebp - 0x1c8], ax
lea eax, [ebp - 0x48]
mov ecx, 1
mov edx, 0x103
call fcn.0051eb38
mov word [ebp - 0x1c6], ax
lea eax, [ebp - 0x48]
mov ecx, 1
mov edx, 0x13d
call fcn.0051eb38
mov dword [ebp - 0x180], eax
lea eax, [ebp - 0x48]
mov ecx, 2
mov edx, 0x128
call fcn.0051eb38
mov dword [ebp - 0x194], eax
lea eax, [ebp - 0x48]
mov edx, 0x11a
call fcn.0051ebc0
fstp qword [ebp - 0x190]
wait
lea eax, [ebp - 0x48]
mov edx, 0x11b
call fcn.0051ebc0
fstp qword [ebp - 0x188]
wait
lea eax, [ebp - 0x48]
xor ecx, ecx
mov edx, 0x124
call fcn.0051eb38
mov dword [ebp - 0x174], eax
lea eax, [ebp - 0x48]
xor ecx, ecx
mov edx, 0x125
call fcn.0051eb38
mov dword [ebp - 0x170], eax
lea eax, [ebp - 0x48]
mov ecx, 1
mov edx, 0x10a
call fcn.0051eb38
mov dword [ebp - 0x16c], eax
lea eax, [ebp - 0x48]
mov edx, 0x11e
call fcn.0051ebc0
fstp qword [ebp - 0x168]
wait
lea eax, [ebp - 0x48]
mov edx, 0x11f
call fcn.0051ebc0
fstp qword [ebp - 0x160]
wait
lea ecx, [ebp - 0x1ec]
lea eax, [ebp - 0x48]
mov edx, 0x10d
call fcn.0051f424
mov edx, dword [ebp - 0x1ec]
lea eax, [ebp - 0x158]
call fcn.004048f4
lea ecx, [ebp - 0x1f0]
lea eax, [ebp - 0x48]
mov edx, 0x10e
call fcn.0051f424
mov edx, dword [ebp - 0x1f0]
lea eax, [ebp - 0x154]
call fcn.004048f4
lea ecx, [ebp - 0x1f4]
lea eax, [ebp - 0x48]
mov edx, 0x11d
call fcn.0051f424
mov edx, dword [ebp - 0x1f4]
lea eax, [ebp - 0x150]
call fcn.004048f4
lea eax, [ebp - 0x48]
xor ecx, ecx
mov edx, 0x129
call fcn.0051ed10
mov dword [ebp - 0x14c], eax
lea eax, [ebp - 0x48]
mov ecx, 1
mov edx, 0x129
call fcn.0051ed10
mov dword [ebp - 0x148], eax
lea ecx, [ebp - 0x1f8]
lea eax, [ebp - 0x48]
mov edx, 0x131
call fcn.0051f424
mov edx, dword [ebp - 0x1f8]
lea eax, [ebp - 0x144]
call fcn.004048f4
lea ecx, [ebp - 0x1fc]
lea eax, [ebp - 0x48]
mov edx, 0x13b
call fcn.0051f424
mov edx, dword [ebp - 0x1fc]
lea eax, [ebp - 0x118]
call fcn.004048f4
lea eax, [ebp - 0x48]
mov ecx, 1
mov edx, 0x14c
call fcn.0051eb38
mov dword [ebp - 0x140], eax
lea eax, [ebp - 0x48]
mov ecx, 4
mov edx, 0x14e
call fcn.0051eb38
mov dword [ebp - 0x13c], eax
lea eax, [ebp - 0x48]
xor ecx, ecx
mov edx, 0x200
call fcn.0051eb38
mov dword [ebp - 0x114], eax
lea eax, [ebp - 0x48]
xor ecx, ecx
mov edx, 0x201
call fcn.0051eb38
mov dword [ebp - 0x110], eax
lea eax, [ebp - 0x48]
xor ecx, ecx
mov edx, 0x202
call fcn.0051eb38
mov dword [ebp - 0x10c], eax
lea eax, [ebp - 0x48]
xor ecx, ecx
mov edx, 0x203
call fcn.0051eb38
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0x1e0]
dec eax
test eax, eax
jl 0x522a4a
inc eax
mov dword [ebp - 0x2c], eax
mov dword [esi], 0
lea edi, [ebp - 0x104]
lea eax, [ebp - 0x48]
mov ecx, dword [esi]
mov edx, 0x205
call fcn.0051ed10
mov dword [edi], eax
lea eax, [ebp - 0x48]
mov ecx, dword [esi]
mov edx, 0x206
call fcn.0051ed10
mov dword [edi + 0x1c], eax
lea eax, [ebp - 0x48]
mov ecx, dword [esi]
mov edx, 0x207
call fcn.0051ed10
mov dword [edi + 0x38], eax
lea eax, [ebp - 0x48]
mov ecx, dword [esi]
mov edx, 0x208
call fcn.0051ed10
mov dword [edi + 0x54], eax
lea eax, [ebp - 0x48]
mov ecx, dword [esi]
mov edx, 0x209
call fcn.0051ed10
mov dword [edi + 0x70], eax
inc dword [esi]
add edi, 4
dec dword [ebp - 0x2c]
jne 0x5229e7
lea eax, [ebp - 0x48]
xor ecx, ecx
mov edx, 0x152
call fcn.0051eb38
mov dword [ebp - 0x64], eax
xor eax, eax
mov dword [esi], eax
lea edi, [ebp - 0x138]
lea eax, [ebp - 0x48]
mov ecx, dword [esi]
mov edx, 0x150
call fcn.0051ed10
mov dword [edi], eax
inc dword [esi]
add edi, 4
cmp dword [esi], 8
jne 0x522a66
lea edx, [ebp - 0x1c4]
lea eax, [ebp - 0x48]
mov ecx, 0x111
call fcn.0051ef60
mov dword [ebp - 0x1c0], eax
lea edx, [ebp - 0x1bc]
lea eax, [ebp - 0x48]
mov ecx, 0x117
call fcn.0051ef60
mov dword [ebp - 0x1b8], eax
lea edx, [ebp - 0x1b4]
lea eax, [ebp - 0x48]
mov ecx, 0x144
call fcn.0051ef60
mov dword [ebp - 0x1b0], eax
lea edx, [ebp - 0x1ac]
lea eax, [ebp - 0x48]
mov ecx, 0x145
call fcn.0051ef60
mov dword [ebp - 0x1a8], eax
cmp dword [ebp - 0x1e0], 1
jne 0x522b1e
cmp dword [ebp - 0x1dc], 1
jne 0x522b1e
cmp word [ebp - 0x1c6], 0
jbe 0x522b1e
cmp word [ebp - 0x1c6], 5
jae 0x522b1e
cmp word [ebp - 0x1cc], 2
jne 0x522b1e
mov word [ebp - 0x1cc], 0
lea ecx, [ebp - 0x178]
lea eax, [ebp - 0x48]
mov edx, 0x15b
call fcn.0051eff4
mov dword [ebp - 0x17c], eax
lea edx, [ebp - 0x1e8]
lea eax, [ebp - 0x48]
call fcn.0051f570
lea edx, [ebp - 0x1e8]
lea eax, [ebp - 0x48]
call fcn.0051f6e0
lea edx, [ebp - 0x1e8]
lea eax, [ebp - 0x48]
mov ecx, dword [ebp + 0x20]
call fcn.00522158
lea edx, [ebp - 0x1e8]
lea eax, [ebp - 0x48]
mov ecx, dword [ebp + 0x20]
call fcn.00522204
lea eax, [ebp - 0x48]
mov edx, dword [ebp + 0x20]
call fcn.0051f31c
lea eax, [ebp - 0x48]
mov edx, dword [ebp + 0x20]
call fcn.0051f39c
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp - 0x1dc]
mov dword [eax + 8], edx
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp - 0x1e0]
mov dword [eax + 0x10], edx
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp - 0x1e8]
mov dword [eax + 0x14], edx
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp - 0x1e4]
mov dword [eax + 0x18], edx
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov eax, dword [ebp + 0x20]
call fcn.0058cc38
movzx edx, word [ebp - 0x1c8]
mov eax, dword [ebp + 0x20]
call fcn.0058cc58
movzx eax, word [ebp - 0x1c6]
cmp eax, 5
jg 0x522bf3
je 0x522c3a
dec eax
je 0x522c04
dec eax
je 0x522c0d
dec eax
je 0x522c16
dec eax
je 0x522c31
jmp 0x522c5e
sub eax, 6
je 0x522c43
dec eax
je 0x522c4c
sub eax, 0x7ffe
je 0x522c55
jmp 0x522c5e
mov eax, dword [ebp + 0x20]
mov byte [eax + 0x31], 0
jmp 0x522c65
mov eax, dword [ebp + 0x20]
mov byte [eax + 0x31], 1
jmp 0x522c65
test byte [ebp - 0x174], 1
jne 0x522c28
mov eax, dword [ebp + 0x20]
mov byte [eax + 0x31], 2
jmp 0x522c65
mov eax, dword [ebp + 0x20]
mov byte [eax + 0x31], 3
jmp 0x522c65
mov eax, dword [ebp + 0x20]
mov byte [eax + 0x31], 4
jmp 0x522c65
mov eax, dword [ebp + 0x20]
mov byte [eax + 0x31], 5
jmp 0x522c65
mov eax, dword [ebp + 0x20]
mov byte [eax + 0x31], 6
jmp 0x522c65
mov eax, dword [ebp + 0x20]
mov byte [eax + 0x31], 7
jmp 0x522c65
mov eax, dword [ebp + 0x20]
mov byte [eax + 0x31], 8
jmp 0x522c65
mov eax, dword [ebp + 0x20]
mov byte [eax + 0x31], 9
movzx eax, word [ebp - 0x1cc]
cmp eax, 8
ja case.0x522c71.7
jmp dword [eax*4 + 0x522c78]
mov eax, dword [ebp + 0x20]
mov byte [eax + 0x38], 0
jmp case.0x522c71.7
mov eax, dword [ebp + 0x20]
mov byte [eax + 0x38], 1
jmp case.0x522c71.7
mov eax, dword [ebp + 0x20]
mov byte [eax + 0x38], 2
jmp case.0x522c71.7
mov eax, dword [ebp + 0x20]
mov byte [eax + 0x38], 3
jmp case.0x522c71.7
mov eax, dword [ebp + 0x20]
mov byte [eax + 0x38], 4
jmp case.0x522c71.7
mov eax, dword [ebp + 0x20]
mov byte [eax + 0x38], 5
jmp case.0x522c71.7
mov eax, dword [ebp + 0x20]
mov byte [eax + 0x38], 6
jmp case.0x522c71.7
mov eax, dword [ebp + 0x20]
mov byte [eax + 0x38], 7
movzx eax, word [ebp - 0x1ca]
mov edx, dword [ebp + 0x20]
mov dword [edx + 0x3c], eax
mov eax, dword [ebp + 0x20]
add eax, 0x48
mov edx, dword [ebp - 0x158]
call fcn.004048b0
mov eax, dword [ebp + 0x20]
add eax, 0x4c
mov edx, dword [ebp - 0x154]
call fcn.004048b0
mov eax, dword [ebp + 0x20]
add eax, 0x50
mov edx, dword [ebp - 0x150]
call fcn.004048b0
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp - 0x14c]
mov dword [eax + 0x54], edx
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp - 0x148]
mov dword [eax + 0x58], edx
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp - 0x16c]
mov dword [eax + 0x78], edx
lea ecx, [ebp - 0x200]
lea eax, [ebp - 0x48]
mov edx, 0x10f
call fcn.0051f424
mov edx, dword [ebp - 0x200]
mov eax, dword [ebp + 0x20]
add eax, 0x174
call fcn.004048b0
lea ecx, [ebp - 0x204]
lea eax, [ebp - 0x48]
mov edx, 0x110
call fcn.0051f424
mov edx, dword [ebp - 0x204]
mov eax, dword [ebp + 0x20]
add eax, 0x178
call fcn.004048b0
lea ecx, [ebp - 0x208]
lea eax, [ebp - 0x48]
mov edx, 0x132
call fcn.0051f424
mov edx, dword [ebp - 0x208]
mov eax, dword [ebp + 0x20]
add eax, 0x19c
call fcn.004048b0
movzx edx, word [ebp - 0x1c8]
mov eax, dword [ebp + 0x20]
call fcn.0058cc64
push dword [ebp - 0x18c]
push dword [ebp - 0x190]
mov eax, dword [ebp + 0x20]
call fcn.0058cc70
push dword [ebp - 0x184]
push dword [ebp - 0x188]
mov eax, dword [ebp + 0x20]
call fcn.0058cc8c
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp - 0x194]
mov dword [eax + 0x190], edx
mov eax, dword [ebp + 0x20]
add eax, 0x194
mov edx, dword [ebp - 0x144]
call fcn.004048b0
lea ecx, [ebp - 0x20c]
lea eax, [ebp - 0x48]
mov edx, 0x9c9b
call fcn.0051f498
mov edx, dword [ebp - 0x20c]
mov eax, dword [ebp + 0x20]
add eax, 0x308
call fcn.00404fbc
lea ecx, [ebp - 0x210]
lea eax, [ebp - 0x48]
mov edx, 0x9c9c
call fcn.0051f498
mov edx, dword [ebp - 0x210]
mov eax, dword [ebp + 0x20]
add eax, 0x30c
call fcn.00404fbc
lea ecx, [ebp - 0x214]
lea eax, [ebp - 0x48]
mov edx, 0x9c9d
call fcn.0051f498
mov edx, dword [ebp - 0x214]
mov eax, dword [ebp + 0x20]
add eax, 0x310
call fcn.00404fbc
lea ecx, [ebp - 0x218]
lea eax, [ebp - 0x48]
mov edx, 0x9c9e
call fcn.0051f498
mov edx, dword [ebp - 0x218]
mov eax, dword [ebp + 0x20]
add eax, 0x314
call fcn.00404fbc
lea ecx, [ebp - 0x21c]
lea eax, [ebp - 0x48]
mov edx, 0x9c9f
call fcn.0051f498
mov edx, dword [ebp - 0x21c]
mov eax, dword [ebp + 0x20]
add eax, 0x318
call fcn.00404fbc
mov eax, dword [ebp + 0x20]
add eax, 0x198
mov edx, dword [ebp - 0x118]
call fcn.004048b0
lea eax, [ebp - 0x48]
xor ecx, ecx
mov edx, 0x13e
call fcn.0051ec5c
add esp, 0xfffffff8
fstp qword [esp]
wait
xor edx, edx
mov eax, dword [ebp + 0x20]
call fcn.0058cae8
lea eax, [ebp - 0x48]
mov ecx, 1
mov edx, 0x13e
call fcn.0051ec5c
add esp, 0xfffffff8
fstp qword [esp]
wait
mov edx, 1
mov eax, dword [ebp + 0x20]
call fcn.0058cae8
lea eax, [ebp - 0x48]
xor ecx, ecx
mov edx, 0x213
call fcn.0051eb38
mov edx, dword [ebp + 0x20]
mov dword [edx + 0x1f8], eax
xor eax, eax
mov dword [esi], eax
lea eax, [ebp - 0x48]
mov ecx, dword [esi]
mov edx, 0x13f
call fcn.0051ec5c
add esp, 0xfffffff8
fstp qword [esp]
wait
mov edx, dword [esi]
mov eax, dword [ebp + 0x20]
call fcn.0058cb24
inc dword [esi]
cmp dword [esi], 6
jne 0x522f44
xor eax, eax
mov dword [esi], eax
lea eax, [ebp - 0x48]
mov ecx, dword [esi]
mov edx, 0x211
call fcn.0051ec5c
add esp, 0xfffffff8
fstp qword [esp]
wait
mov edx, dword [esi]
mov eax, dword [ebp + 0x20]
call fcn.0058cb60
inc dword [esi]
cmp dword [esi], 3
jne 0x522f6f
xor eax, eax
mov dword [esi], eax
lea eax, [ebp - 0x48]
mov ecx, dword [esi]
mov edx, 0x214
call fcn.0051ec5c
add esp, 0xfffffff8
fstp qword [esp]
wait
mov edx, dword [esi]
mov eax, dword [ebp + 0x20]
call fcn.0058caac
inc dword [esi]
cmp dword [esi], 6
jne 0x522f9a
lea ecx, [ebp - 0x220]
lea eax, [ebp - 0x48]
mov edx, 0x8298
call fcn.0051f424
mov edx, dword [ebp - 0x220]
mov eax, dword [ebp + 0x20]
add eax, 0x230
call fcn.004048b0
lea eax, [ebp - 0x60]
mov edx, 0x829a
call fcn.0051ebc0
mov eax, dword [ebp + 0x20]
fstp qword [eax + 0x238]
wait
lea eax, [ebp - 0x60]
mov edx, 0x829d
call fcn.0051ebc0
mov eax, dword [ebp + 0x20]
fstp qword [eax + 0x240]
wait
lea eax, [ebp - 0x60]
xor ecx, ecx
mov edx, 0x8822
call fcn.0051eb38
mov edx, dword [ebp + 0x20]
mov dword [edx + 0x248], eax
lea eax, [ebp - 0x60]
xor ecx, ecx
mov edx, 0x8827
call fcn.0051ed10
mov ecx, eax
xor edx, edx
mov eax, dword [ebp + 0x20]
call fcn.0058ca9c
lea eax, [ebp - 0x60]
mov ecx, 1
mov edx, 0x8827
call fcn.0051ed10
mov ecx, eax
mov edx, 1
mov eax, dword [ebp + 0x20]
call fcn.0058ca9c
lea ecx, [ebp - 0x224]
lea eax, [ebp - 0x60]
mov edx, 0x9000
call fcn.0051f510
mov edx, dword [ebp - 0x224]
mov eax, dword [ebp + 0x20]
add eax, 0x254
call fcn.004048b0
cmp byte [ebp - 0x48], 0
jne 0x5230fe
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 0x254]
call fcn.00404b14
cmp eax, 4
jne 0x5230fe
lea eax, [ebp - 0x28]
mov edx, dword [ebp + 0x20]
mov edx, dword [edx + 0x254]
call fcn.004048f4
lea eax, [ebp - 0x28]
call fcn.00404d64
push eax
lea eax, [ebp - 0x28]
call fcn.00404d64
add eax, 3
pop edx
call fcn.005708b8
lea eax, [ebp - 0x28]
call fcn.00404d64
add eax, 2
push eax
lea eax, [ebp - 0x28]
call fcn.00404d64
inc eax
pop edx
call fcn.005708b8
mov eax, dword [ebp + 0x20]
add eax, 0x254
mov edx, dword [ebp - 0x28]
call fcn.004048b0
lea ecx, [ebp - 0x228]
lea eax, [ebp - 0x60]
mov edx, 0x9003
call fcn.0051f424
mov edx, dword [ebp - 0x228]
mov eax, dword [ebp + 0x20]
add eax, 0x258
call fcn.004048b0
lea ecx, [ebp - 0x22c]
lea eax, [ebp - 0x60]
mov edx, 0x9004
call fcn.0051f424
mov edx, dword [ebp - 0x22c]
mov eax, dword [ebp + 0x20]
add eax, 0x25c
call fcn.004048b0
lea eax, [ebp - 0x60]
mov edx, 0x9102
call fcn.0051ebc0
mov eax, dword [ebp + 0x20]
fstp qword [eax + 0x260]
wait
lea eax, [ebp - 0x60]
mov edx, 0x9201
call fcn.0051ebc0
mov eax, dword [ebp + 0x20]
fstp qword [eax + 0x268]
wait
lea eax, [ebp - 0x60]
mov edx, 0x9202
call fcn.0051ebc0
mov eax, dword [ebp + 0x20]
fstp qword [eax + 0x270]
wait
lea eax, [ebp - 0x60]
mov edx, 0x9203
call fcn.0051ebc0
mov eax, dword [ebp + 0x20]
fstp qword [eax + 0x278]
wait
lea eax, [ebp - 0x60]
mov edx, 0x9204
call fcn.0051ebc0
mov eax, dword [ebp + 0x20]
fstp qword [eax + 0x280]
wait
lea eax, [ebp - 0x60]
mov edx, 0x9205
call fcn.0051ebc0
mov eax, dword [ebp + 0x20]
fstp qword [eax + 0x288]
wait
lea eax, [ebp - 0x60]
mov edx, 0x9206
call fcn.0051ebc0
mov eax, dword [ebp + 0x20]
fstp qword [eax + 0x290]
wait
lea eax, [ebp - 0x60]
xor ecx, ecx
mov edx, 0x9207
call fcn.0051eb38
mov edx, dword [ebp + 0x20]
mov dword [edx + 0x298], eax
lea eax, [ebp - 0x60]
xor ecx, ecx
mov edx, 0x9208
call fcn.0051eb38
mov edx, dword [ebp + 0x20]
mov dword [edx + 0x29c], eax
lea eax, [ebp - 0x60]
xor ecx, ecx
mov edx, 0x9209
call fcn.0051eb38
mov edx, dword [ebp + 0x20]
mov dword [edx + 0x2a0], eax
lea eax, [ebp - 0x60]
mov edx, 0x920a
call fcn.0051ebc0
mov eax, dword [ebp + 0x20]
fstp qword [eax + 0x2a8]
wait
lea ecx, [ebp - 0x230]
lea eax, [ebp - 0x60]
mov edx, 0x9290
call fcn.0051f424
mov edx, dword [ebp - 0x230]
mov eax, dword [ebp + 0x20]
add eax, 0x2b0
call fcn.004048b0
lea ecx, [ebp - 0x234]
lea eax, [ebp - 0x60]
mov edx, 0x9291
call fcn.0051f424
mov edx, dword [ebp - 0x234]
mov eax, dword [ebp + 0x20]
add eax, 0x2b4
call fcn.004048b0
lea ecx, [ebp - 0x238]
lea eax, [ebp - 0x60]
mov edx, 0x9292
call fcn.0051f424
mov edx, dword [ebp - 0x238]
mov eax, dword [ebp + 0x20]
add eax, 0x2b8
call fcn.004048b0
lea ecx, [ebp - 0x23c]
lea eax, [ebp - 0x60]
mov edx, 0xa000
call fcn.0051f510
mov edx, dword [ebp - 0x23c]
mov eax, dword [ebp + 0x20]
add eax, 0x2bc
call fcn.004048b0
lea eax, [ebp - 0x60]
xor ecx, ecx
mov edx, 0xa001
call fcn.0051eb38
mov edx, dword [ebp + 0x20]
mov dword [edx + 0x2c0], eax
lea eax, [ebp - 0x60]
xor ecx, ecx
mov edx, 0xa002
call fcn.0051eb38
mov edx, dword [ebp + 0x20]
mov dword [edx + 0x2c4], eax
lea eax, [ebp - 0x60]
xor ecx, ecx
mov edx, 0xa003
call fcn.0051eb38
mov edx, dword [ebp + 0x20]
mov dword [edx + 0x2c8], eax
lea ecx, [ebp - 0x240]
lea eax, [ebp - 0x60]
mov edx, 0xa004
call fcn.0051f424
mov edx, dword [ebp - 0x240]
mov eax, dword [ebp + 0x20]
add eax, 0x2cc
call fcn.004048b0
lea eax, [ebp - 0x60]
mov edx, 0xa20e
call fcn.0051ebc0
mov eax, dword [ebp + 0x20]
fstp qword [eax + 0x2d0]
wait
lea eax, [ebp - 0x60]
mov edx, 0xa20f
call fcn.0051ebc0
mov eax, dword [ebp + 0x20]
fstp qword [eax + 0x2d8]
wait
lea eax, [ebp - 0x60]
xor ecx, ecx
mov edx, 0xa210
call fcn.0051eb38
mov edx, dword [ebp + 0x20]
mov dword [edx + 0x2e0], eax
lea eax, [ebp - 0x60]
mov edx, 0xa215
call fcn.0051ebc0
mov eax, dword [ebp + 0x20]
fstp qword [eax + 0x2e8]
wait
lea eax, [ebp - 0x60]
xor ecx, ecx
mov edx, 0xa217
call fcn.0051eb38
mov edx, dword [ebp + 0x20]
mov dword [edx + 0x2f0], eax
lea eax, [ebp - 0x60]
xor ecx, ecx
mov edx, 0xa300
call fcn.0051eb38
mov edx, dword [ebp + 0x20]
mov dword [edx + 0x2f4], eax
lea eax, [ebp - 0x60]
xor ecx, ecx
mov edx, 0xa301
call fcn.0051eb38
mov edx, dword [ebp + 0x20]
mov dword [edx + 0x2f8], eax
lea ecx, [ebp - 0x244]
lea eax, [ebp - 0x60]
mov edx, 0x9286
call fcn.0051f424
mov edx, dword [ebp - 0x244]
mov eax, dword [ebp + 0x20]
add eax, 0x300
call fcn.004048b0
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 0x300]
call fcn.00404b14
test eax, eax
jle 0x52347c
mov eax, dword [ebp + 0x20]
add eax, 0x2fc
push eax
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 0x300]
call fcn.00404b14
mov ecx, eax
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 0x300]
mov edx, 9
call fcn.00404d6c
mov eax, dword [ebp + 0x20]
add eax, 0x300
push eax
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 0x300]
mov ecx, 8
mov edx, 1
call fcn.00404d6c
jmp 0x523489
mov eax, dword [ebp + 0x20]
add eax, 0x2fc
call fcn.0040485c
mov eax, dword [ebp + 0x20]
mov ecx, dword [eax + 0x304]
lea eax, [ebp - 0x60]
mov edx, 0x927c
call fcn.0051f068
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 0x36c]
test eax, eax
je 0x5234c7
call fcn.004027cc
mov eax, dword [ebp + 0x20]
xor edx, edx
mov dword [eax + 0x36c], edx
mov eax, dword [ebp + 0x20]
xor edx, edx
mov dword [eax + 0x370], edx
mov eax, dword [ebp - 0x1a0]
test eax, eax
jle 0x523509
mov edx, dword [ebp + 0x20]
mov dword [edx + 0x370], eax
mov eax, dword [ebp - 0x1a0]
lea eax, [eax + eax*2]
call fcn.004027ac
mov edi, eax
mov eax, dword [ebp + 0x20]
mov dword [eax + 0x36c], edi
mov ecx, dword [ebp - 0x1a0]
lea ecx, [ecx + ecx*2]
mov eax, edi
mov edx, dword [ebp - 0x1a4]
call fcn.00407e18
cmp dword [ebp - 0x194], 3
jne 0x523522
mov dword [ebp - 0x20], 0x851eb852
mov dword [ebp - 0x1c], 0x400451eb
jmp 0x52352e
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 0x3ff00000
fld qword [ebp - 0x190]
fmul qword [ebp - 0x20]
call fcn.00402ccc
mov edx, eax
mov eax, dword [ebp + 0x20]
call fcn.0058cbb8
fld qword [ebp - 0x188]
fmul qword [ebp - 0x20]
call fcn.00402ccc
mov edx, eax
mov eax, dword [ebp + 0x20]
call fcn.0058cbe8
mov eax, dword [ebp + 0x20]
cmp dword [eax + 0x1c], 0
jne 0x523577
mov edx, dword [0x660310]
mov edx, dword [edx]
mov eax, dword [ebp + 0x20]
call fcn.0058cbb8
mov eax, dword [ebp + 0x20]
cmp dword [eax + 0x20], 0
jne 0x523590
mov edx, dword [0x660268]
mov edx, dword [edx]
mov eax, dword [ebp + 0x20]
call fcn.0058cbe8
fld qword [ebp - 0x168]
fmul qword [ebp - 0x20]
call fcn.00402ccc
mov edx, dword [ebp + 0x20]
mov dword [edx + 0x40], eax
fld qword [ebp - 0x160]
fmul qword [ebp - 0x20]
call fcn.00402ccc
mov edx, dword [ebp + 0x20]
mov dword [edx + 0x44], eax
mov eax, dword [ebp + 0x20]
cmp dword [eax + 0x14], 0
je 0x5235ca
mov eax, dword [ebp + 0x20]
cmp dword [eax + 0x18], 0
jne 0x5235e1
test bl, bl
jne 0x5235e1
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 0x28]
mov byte [eax], 1
call fcn.004042e4
jmp 0x523b18
cmp word [ebp - 0x1c6], 5
jne 0x523628
mov eax, dword [ebp + 0x20]
cmp dword [eax + 0x60], 0
je 0x5235ff
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 0x60]
mov dword [ebp - 0x78], eax
jmp 0x523628
mov eax, dword [0x65fc4c]
cmp dword [eax], 0
je 0x523615
mov eax, dword [0x65fc4c]
mov eax, dword [eax]
mov dword [ebp - 0x78], eax
jmp 0x523628
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 0x28]
mov byte [eax], 1
call fcn.004042e4
jmp 0x523b18
mov al, byte [ebp + 0xc]
mov byte [ebp - 0x68], al
cmp byte [ebp + 0x18], 0
jne 0x523a34
cmp byte [ebp + 0xc], 0
jne 0x5236ba
cmp dword [ebp - 0x1e0], 4
jne 0x52364d
cmp dword [ebp - 0x64], 2
je 0x523672
cmp dword [ebp - 0x1e0], 2
jne 0x52365f
cmp dword [ebp - 0x1dc], 8
je 0x523672
cmp dword [ebp - 0x1e0], 4
jne 0x52368b
cmp word [ebp - 0x1cc], 2
jne 0x52368b
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
jne 0x52368b
mov dl, 1
mov eax, dword [0x5a1894]
call fcn.005a3fa0
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
je 0x5236ba
push 8
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x1e4]
mov edx, dword [ebp - 0x1e8]
call fcn.005a436c
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov edx, 0xff
call fcn.005a5bac
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 4]
mov al, byte [eax + 4]
mov byte [ebp - 0x21], al
mov eax, dword [ebp - 4]
mov dl, byte [0x523b80]
mov byte [eax + 4], dl
cmp dword [ebp - 0x1e8], 0x190
jg 0x5236ef
cmp dword [ebp - 0x1e4], 0x190
jle 0x523706
test bl, bl
je 0x523706
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 0x28]
mov byte [eax], 1
call fcn.004042e4
jmp 0x523b18
cmp word [ebp - 0x1c6], 6
je 0x523719
cmp dword [ebp - 0x110], 0
je 0x52373c
cmp dword [ebp - 0x114], 2
jge 0x52373c
mov eax, dword [ebp + 0x1c]
push eax
lea ecx, [ebp - 4]
lea edx, [ebp - 0x1e8]
lea eax, [ebp - 0x48]
call fcn.00522064
jmp 0x523a13
cmp dword [ebp - 0x1e8], 0
je 0x52374e
cmp dword [ebp - 0x1e4], 0
jne 0x523761
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 0x28]
mov byte [eax], 1
call fcn.004042e4
jmp 0x523b18
cmp dword [ebp - 0x1dc], 1
jne 0x523798
cmp dword [ebp - 0x1e0], 1
jne 0x523798
cmp word [ebp - 0x1cc], 3
je 0x523798
push 1
mov ecx, dword [ebp - 0x1e4]
mov edx, dword [ebp - 0x1e8]
mov eax, dword [ebp - 4]
mov esi, dword [eax]
call dword [esi + 0x24]
jmp 0x523961
mov eax, dword [ebp + 0x20]
cmp byte [eax + 0x369], 0
je 0x52394b
cmp dword [ebp - 0x1dc], 8
jne 0x523826
cmp dword [ebp - 0x1e0], 1
jne 0x523826
cmp word [ebp - 0x1cc], 3
jne 0x523826
push 2
mov ecx, dword [ebp - 0x1e4]
mov edx, dword [ebp - 0x1e8]
mov eax, dword [ebp - 4]
mov edi, dword [eax]
call dword [edi + 0x24]
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 0x370]
dec eax
test eax, eax
jl 0x523961
inc eax
mov dword [ebp - 0x2c], eax
mov dword [esi], 0
mov eax, dword [esi]
lea eax, [eax + eax*2]
mov edx, dword [ebp + 0x20]
mov edx, dword [edx + 0x36c]
mov cl, byte [edx + eax + 2]
shl ecx, 0x10
mov cx, word [edx + eax]
push ecx
mov edx, dword [esi]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x1c]
inc dword [esi]
dec dword [ebp - 0x2c]
jne 0x5237f6
jmp 0x523961
cmp dword [ebp - 0x1dc], 8
jne 0x52385d
cmp dword [ebp - 0x1e0], 1
jne 0x52385d
cmp word [ebp - 0x1cc], 1
jne 0x52385d
push 3
mov ecx, dword [ebp - 0x1e4]
mov edx, dword [ebp - 0x1e8]
mov eax, dword [ebp - 4]
mov esi, dword [eax]
call dword [esi + 0x24]
jmp 0x523961
cmp dword [ebp - 0x1dc], 0x10
jne 0x523894
cmp dword [ebp - 0x1e0], 1
jne 0x523894
cmp word [ebp - 0x1cc], 1
jne 0x523894
push 4
mov ecx, dword [ebp - 0x1e4]
mov edx, dword [ebp - 0x1e8]
mov eax, dword [ebp - 4]
mov esi, dword [eax]
call dword [esi + 0x24]
jmp 0x523961
cmp dword [ebp - 0x1dc], 8
jne 0x5238cb
cmp dword [ebp - 0x1e0], 4
jl 0x5238cb
cmp word [ebp - 0x1cc], 5
jne 0x5238cb
push 7
mov ecx, dword [ebp - 0x1e4]
mov edx, dword [ebp - 0x1e8]
mov eax, dword [ebp - 4]
mov esi, dword [eax]
call dword [esi + 0x24]
jmp 0x523961
cmp dword [ebp - 0x1dc], 0x10
jne 0x5238ff
cmp dword [ebp - 0x1e0], 4
jne 0x5238ff
cmp word [ebp - 0x1cc], 5
jne 0x5238ff
push 7
mov ecx, dword [ebp - 0x1e4]
mov edx, dword [ebp - 0x1e8]
mov eax, dword [ebp - 4]
mov esi, dword [eax]
call dword [esi + 0x24]
jmp 0x523961
cmp dword [ebp - 0x1dc], 0x10
jne 0x523933
cmp dword [ebp - 0x1e0], 3
jne 0x523933
cmp word [ebp - 0x1cc], 2
jne 0x523933
push 8
mov ecx, dword [ebp - 0x1e4]
mov edx, dword [ebp - 0x1e8]
mov eax, dword [ebp - 4]
mov esi, dword [eax]
call dword [esi + 0x24]
jmp 0x523961
push 5
mov ecx, dword [ebp - 0x1e4]
mov edx, dword [ebp - 0x1e8]
mov eax, dword [ebp - 4]
mov esi, dword [eax]
call dword [esi + 0x24]
jmp 0x523961
push 5
mov ecx, dword [ebp - 0x1e4]
mov edx, dword [ebp - 0x1e8]
mov eax, dword [ebp - 4]
mov esi, dword [eax]
call dword [esi + 0x24]
test bl, bl
je 0x523971
push 0
push 0
mov eax, dword [ebp - 4]
call fcn.005ac300
cmp dword [ebp - 0x1d4], 0
jg 0x523983
cmp dword [ebp - 0x1d0], 0
jle 0x5239f5
cmp dword [ebp - 0x1b0], 0
jle 0x5239a3
mov eax, dword [ebp + 0x1c]
push eax
lea ecx, [ebp - 4]
lea edx, [ebp - 0x1e8]
lea eax, [ebp - 0x48]
call fcn.0051f848
jmp 0x523a13
cmp dword [ebp - 0x1c0], 0
jle 0x523a13
lea edx, [ebp - 0x1b4]
lea eax, [ebp - 0x48]
mov ecx, 0x111
call fcn.0051ef60
mov dword [ebp - 0x1b0], eax
lea edx, [ebp - 0x1ac]
lea eax, [ebp - 0x48]
mov ecx, 0x117
call fcn.0051ef60
mov dword [ebp - 0x1a8], eax
mov eax, dword [ebp + 0x1c]
push eax
lea ecx, [ebp - 4]
lea edx, [ebp - 0x1e8]
lea eax, [ebp - 0x48]
call fcn.0051f848
jmp 0x523a13
cmp dword [ebp - 0x1c0], 0
jle 0x523a13
mov eax, dword [ebp + 0x1c]
push eax
lea ecx, [ebp - 4]
lea edx, [ebp - 0x1e8]
lea eax, [ebp - 0x48]
call fcn.0051fa48
mov eax, dword [ebp - 4]
mov dl, byte [ebp - 0x21]
mov byte [eax + 4], dl
mov eax, dword [ebp + 0x20]
cmp byte [eax + 0x68], 0
je 0x523a34
movzx edx, word [ebp - 0x1c8]
mov eax, dword [ebp - 4]
call fcn.005b509c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x523b18
cmp dword [ebp + 0x20], 0
je 0x523a6e
mov eax, dword [ebp + 0x20]
cmp dword [eax + 0x434], 0
je 0x523a6e
mov eax, dword [ebp + 0x20]
call fcn.0058cca8
cmp byte [eax + 0x18], 0
je 0x523a6e
mov eax, dword [ebp + 0x20]
call fcn.0058cca8
call fcn.005b4824
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x523a7a
call fcn.004027cc
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x523a86
call fcn.004027cc
cmp dword [ebp - 0x1c0], 0
jle 0x523a9a
mov eax, dword [ebp - 0x1c4]
call fcn.004027cc
cmp dword [ebp - 0x1b8], 0
jle 0x523aae
mov eax, dword [ebp - 0x1bc]
call fcn.004027cc
cmp dword [ebp - 0x1b0], 0
jle 0x523ac2
mov eax, dword [ebp - 0x1b4]
call fcn.004027cc
cmp dword [ebp - 0x1a8], 0
jle 0x523ad6
mov eax, dword [ebp - 0x1ac]
call fcn.004027cc
cmp dword [ebp - 0x1a0], 0
jle 0x523aea
mov eax, dword [ebp - 0x1a4]
call fcn.004027cc
cmp dword [ebp - 0x198], 0
jle 0x523afe
mov eax, dword [ebp - 0x19c]
call fcn.004027cc
mov eax, dword [ebp - 0x17c]
test eax, eax
je 0x523b0d
call fcn.004027cc
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x523b76
lea eax, [ebp - 0x244]
mov edx, 0xa
call fcn.00404880
lea eax, [ebp - 0x21c]
mov edx, 5
call fcn.00404f98
lea eax, [ebp - 0x208]
mov edx, 8
call fcn.00404880
lea eax, [ebp - 0x1e8]
mov edx, dword [0x51ea94]
call fcn.004053b4
lea eax, [ebp - 0x28]
call fcn.0040485c
ret