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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4ae2e4
push eax
mov dword fs:[0], esp
sub esp, 0x284
push ebx
push ebp
push esi
mov esi, dword [esp + 0x2ac]
mov ebp, ecx
push edi
mov ecx, esi
mov edi, dword [esp + 0x2ac]
lea eax, [ebp + 0x140]
xor ebx, ebx
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
xor eax, eax
xor ecx, ecx
mov dword [ebp + 0x12c], eax
mov dword [ebp + 0x130], ecx
mov edx, dword [edi]
cmp dword [edx - 8], ebx
jne 0x520c59
mov eax, dword [esp + 0x2a4]
xor edx, edx
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x52339c
push edi
lea eax, [esp + 0x38]
push 0x4f4a04
push eax
call 0x55bf76
push eax
mov ecx, edi
mov dword [esp + 0x2a0], ebx
call 0x55bda6
lea ecx, [esp + 0x34]
mov dword [esp + 0x29c], 0xffffffff
call 0x55bcb9
push 0x4f49fc
mov ecx, edi
call 0x55c049
mov ecx, dword [ebp + 0x134]
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov dword [esp + 0x144], ecx
push 0x5149bc
lea ecx, [esp + 0x2c]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
call 0x55bd27
push 0x5149bc
lea ecx, [esp + 0x18]
mov dword [esp + 0x2a0], 1
call 0x55bd27
push 0x5149bc
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a0], 2
call 0x55bd27
push 0x5149bc
lea ecx, [esp + 0x1c]
mov byte [esp + 0x2a0], 3
call 0x55bd27
mov eax, dword [0x4f6f34]
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x230], eax
mov ecx, dword [esp + 0x2b4]
lea edx, [esp + 0x20]
push ecx
push edx
mov ecx, ebp
mov byte [esp + 0x2a4], 5
call fcn.00523c70
mov eax, dword [edi]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x40], ebx
mov eax, dword [eax - 8]
cmp eax, ebx
jle 0x523246
jmp 0x520d60
mov edi, dword [esp + 0x2ac]
lea ecx, [esp + 0x40]
lea edx, [esp + 0x14]
push ecx
push edx
lea eax, [esp + 0x168]
push edi
push eax
mov ecx, ebp
call fcn.00525b30
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2a0], 6
call 0x55bda6
lea ecx, [esp + 0x160]
mov byte [esp + 0x29c], 5
call 0x55bcb9
mov ecx, dword [esp + 0x28]
cmp dword [ecx - 8], ebx
je 0x520f78
mov eax, dword [ebp + 0x78]
dec eax
je 0x520e18
dec eax
je 0x520e0d
dec eax
jne 0x520e21
lea ecx, [esp + 0x28]
call 0x55c181
mov edx, dword [esp + 0x28]
xor eax, eax
mov dword [esp + 0x1c], eax
cmp dword [edx - 8], ebx
jle 0x520e21
mov cl, byte [eax + edx]
cmp cl, 0x61
jl 0x520dff
cmp cl, 0x7a
jg 0x520dff
cmp eax, ebx
je 0x520de9
cmp byte [eax + edx - 1], 0x20
jne 0x520dff
sub cl, 0x20
push ecx
push eax
lea ecx, [esp + 0x30]
call 0x55c193
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
mov ecx, dword [edx - 8]
cmp eax, ecx
jl 0x520dd1
jmp 0x520e21
lea ecx, [esp + 0x28]
call 0x55c181
jmp 0x520e21
lea ecx, [esp + 0x28]
call 0x55c16f
lea edx, [esp + 0x28]
mov ecx, ebp
push edx
call fcn.00527530
mov eax, dword [esp + 0x28]
lea edx, [esp + 0xb4]
push edx
mov ecx, dword [eax - 8]
push ecx
push eax
mov eax, dword [esp + 0x2b4]
mov ecx, dword [eax + 8]
push ecx
call dword [fcn.004b00ec]
mov edx, dword [esp + 0x2b4]
mov ebx, dword [esp + 0xb8]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
push edx
push ebx
push eax
lea edx, [esp + 0x278]
push ecx
push edx
mov ecx, ebp
call fcn.005239e0
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [esp + 0x2b4]
test eax, eax
jne 0x520f53
mov eax, dword [esp + 0xb4]
sub esp, 0x10
mov edx, esp
add eax, esi
lea ecx, [ebx + edi]
mov dword [edx], esi
mov dword [edx + 4], edi
mov dword [edx + 8], eax
mov dword [edx + 0xc], ecx
mov ecx, ebp
call fcn.00523500
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2a8]
mov ecx, dword [eax - 8]
mov ebx, dword [edx]
push ecx
push eax
push edi
push esi
mov ecx, edx
call dword [ebx + 0x5c]
mov eax, dword [ebp + 0x3c]
test eax, eax
je 0x520f5c
mov ebx, dword [ebp + 0x2c]
mov eax, dword [ebp + 0x44]
xor ecx, ecx
cmp ebx, 0x2bc
setge cl
inc ecx
push eax
push ecx
push 0
call dword [fcn.004b0094]
mov esi, dword [esp + 0x2a8]
test esi, esi
jne 0x520efe
xor ecx, ecx
jmp 0x520f01
mov ecx, dword [esi + 4]
mov ebx, dword [fcn.004b0090]
push eax
push ecx
call ebx
mov edx, dword [esp + 0x24]
mov edi, eax
mov eax, dword [esp + 0x20]
push edx
lea ecx, [esp + 0x280]
push eax
push ecx
mov ecx, esi
call 0x5624ac
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0x24]
add ecx, eax
push edx
push ecx
mov ecx, esi
call 0x5624f8
test esi, esi
jne 0x520f4a
push edi
push esi
call ebx
jmp 0x520f5c
mov esi, dword [esi + 4]
push edi
push esi
call ebx
jmp 0x520f5c
mov edx, dword [ebp + 0x68]
mov dword [ebp + 0xb4], edx
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x20]
add ecx, eax
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x28]
call 0x55bc44
xor ebx, ebx
mov ecx, dword [esp + 0x14]
cmp dword [ecx - 8], ebx
je 0x52322e
lea ecx, [esp + 0x14]
call 0x55c181
lea esi, [ebp + 0x24]
mov ecx, esi
call 0x55bc44
lea edx, [esp + 0x1c]
lea eax, [esp + 0x14]
push edx
lea ecx, [esp + 0x138]
push eax
push ecx
mov ecx, ebp
xor edi, edi
mov dword [esp + 0x28], ebx
call fcn.00526270
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a0], 7
call 0x55bda6
lea ecx, [esp + 0x134]
mov byte [esp + 0x29c], 5
call 0x55bcb9
mov eax, dword [esp + 0x10]
cmp dword [eax - 8], ebx
je 0x52322e
cmp byte [eax], 0x2f
jne 0x521034
mov eax, dword [eax - 8]
lea edx, [esp + 0x15c]
dec eax
lea ecx, [esp + 0x10]
push eax
push edx
mov edi, 1
call 0x55971d
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a0], 8
call 0x55bda6
lea ecx, [esp + 0x15c]
mov byte [esp + 0x29c], 5
call 0x55bcb9
mov eax, dword [esp + 0x10]
push 0x4f49f8
push eax
call 0x539964
add esp, 8
test eax, eax
jne 0x521089
push 0x4f49f0
mov ecx, esi
call 0x55bdf6
push edi
mov ecx, ebp
call fcn.005235f0
test eax, eax
je 0x52322e
cmp edi, ebx
jne 0x52107c
mov edx, dword [ebp + 0x2c]
mov eax, 0x384
shl edx, 1
mov ecx, edx
mov dword [ebp + 0x2c], edx
cmp ecx, eax
jle 0x52107c
mov dword [ebp + 0x2c], eax
mov eax, dword [esp + 0x2a8]
push eax
jmp 0x523227
mov ecx, dword [esp + 0x10]
push 0x4f49ec
push ecx
call 0x539964
add esp, 8
test eax, eax
je 0x5231f6
mov edx, dword [esp + 0x10]
push 0x4f49e8
push edx
call 0x539964
add esp, 8
test eax, eax
je 0x5231f6
mov eax, dword [esp + 0x10]
push 0x4f49e4
push eax
call 0x539964
add esp, 8
test eax, eax
jne 0x52110d
push 0x4f49d8
mov ecx, esi
call 0x55bdf6
push edi
mov ecx, ebp
call fcn.005235f0
test eax, eax
je 0x52322e
cmp edi, ebx
jne 0x521100
mov eax, dword [ebp + 0x34]
xor ecx, ecx
cmp eax, ebx
sete cl
mov dword [ebp + 0x34], ecx
mov edx, dword [esp + 0x2a8]
push edx
jmp 0x523227
mov eax, dword [esp + 0x10]
push 0x4f49d4
push eax
call 0x539964
add esp, 8
test eax, eax
je 0x5231c3
mov ecx, dword [esp + 0x10]
push 0x4f49cc
push ecx
call 0x539964
add esp, 8
test eax, eax
je 0x5231c3
mov edx, dword [esp + 0x10]
push 0x4f49c4
push edx
call 0x539964
add esp, 8
test eax, eax
jne 0x5213cf
push 0x4f49c4
mov ecx, esi
call 0x55bdf6
push edi
mov ecx, ebp
call fcn.005235f0
test eax, eax
je 0x52322e
cmp edi, ebx
jne 0x52321f
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax - 8]
cmp ecx, eax
jge 0x52321f
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x14]
push ecx
lea eax, [esp + 0x150]
push edx
push eax
mov ecx, ebp
call fcn.00525d70
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a0], 9
call 0x55bda6
lea ecx, [esp + 0x14c]
mov byte [esp + 0x29c], 5
call 0x55bcb9
mov ecx, dword [esp + 0x10]
cmp dword [ecx - 8], ebx
je 0x5213b7
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x4f3f3c
call 0x55bd27
lea edx, [esp + 0x20]
push 0x3d
lea eax, [esp + 0x1c]
push edx
lea ecx, [esp + 0x178]
push eax
push ecx
mov ecx, ebp
call fcn.00526130
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x2a0], 0xa
call 0x55bda6
lea ecx, [esp + 0x16c]
mov byte [esp + 0x29c], 5
call 0x55bcb9
mov edx, dword [esp + 0x10]
push 0x4f49bc
push edx
call 0x539964
add esp, 8
test eax, eax
jne 0x5212af
push ecx
lea esi, [ebp + 0x40]
mov ecx, esp
mov dword [esp + 0x30], esp
push esi
call 0x55ba2e
push ecx
lea eax, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
mov byte [esp + 0x2a8], 0xb
call 0x55ba2e
lea ecx, [esp + 0x15c]
mov byte [esp + 0x2a4], 5
push ecx
mov ecx, ebp
call fcn.00526bd0
push eax
mov ecx, esi
mov byte [esp + 0x2a0], 0xc
call 0x55bda6
lea ecx, [esp + 0x154]
mov byte [esp + 0x29c], 5
call 0x55bcb9
jmp 0x5213b7
mov edx, dword [esp + 0x10]
push 0x4f49b4
push edx
call 0x539964
add esp, 8
test eax, eax
jne 0x5212df
mov eax, dword [ebp + 0x28]
push 1
lea ecx, [esp + 0x1c]
push eax
push ecx
mov ecx, ebp
call fcn.00525490
mov dword [ebp + 0x28], eax
jmp 0x5213b7
mov edx, dword [esp + 0x10]
push 0x4f49ac
push edx
call 0x539964
add esp, 8
test eax, eax
jne 0x52130d
mov eax, dword [ebp + 0x44]
lea ecx, [esp + 0x18]
push eax
push ecx
mov ecx, ebp
call fcn.00525320
mov dword [ebp + 0x44], eax
jmp 0x5213b7
mov edx, dword [esp + 0x10]
push 0x4f49a4
push edx
call 0x539964
add esp, 8
test eax, eax
jne 0x521334
lea eax, [esp + 0x18]
mov ecx, ebp
push eax
call fcn.00526c60
jmp 0x5213b7
mov ecx, dword [esp + 0x10]
push 0x4f499c
push ecx
call 0x539964
add esp, 8
test eax, eax
jne 0x52135f
mov edx, dword [ebp + 0x2c]
lea eax, [esp + 0x18]
push edx
push eax
mov ecx, ebp
call fcn.005250f0
mov dword [ebp + 0x2c], eax
jmp 0x5213b7
mov ecx, dword [esp + 0x10]
push 0x4f4994
push ecx
call 0x539964
add esp, 8
test eax, eax
jne 0x5213b7
mov edx, dword [esp + 0x18]
push 0x4f4988
push edx
call 0x539964
add esp, 8
test eax, eax
jne 0x52139d
mov eax, dword [esp + 0x18]
cmp dword [eax - 8], ebx
jne 0x52139d
mov dword [ebp + 0x5c], 1
jmp 0x5213b7
mov ecx, dword [ebp + 0x48]
lea edx, [esp + 0x18]
push ecx
push edx
mov ecx, ebp
mov dword [ebp + 0x5c], 2
call fcn.00525320
mov dword [ebp + 0x48], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax - 8]
cmp ecx, eax
jl 0x521192
jmp 0x52321f
mov edx, dword [esp + 0x10]
push 0x4f4984
push edx
call 0x539964
add esp, 8
test eax, eax
jne 0x52178f
push esi
lea ecx, [esp + 0x1b8]
call 0x55bda6
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [esp + 0x1b8], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x1bc], ecx
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1c0], edx
mov edx, dword [esi + 0x18]
lea eax, [esi + 0x1c]
mov dword [esp + 0x1c8], ecx
push eax
lea ecx, [esp + 0x1d4]
mov dword [esp + 0x1d0], edx
call 0x55bda6
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x28]
mov edx, dword [esi + 0x24]
mov dword [esp + 0x1d4], ecx
mov ecx, dword [esi + 0x2c]
mov dword [esp + 0x1dc], eax
mov eax, dword [esi + 0x34]
mov dword [esp + 0x1d8], edx
mov edx, dword [esi + 0x30]
mov dword [esp + 0x1e0], ecx
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x1e4], edx
mov edx, dword [esi + 0x3c]
lea eax, [esi + 0x40]
mov dword [esp + 0x1ec], ecx
push eax
lea ecx, [esp + 0x1f8]
mov dword [esp + 0x1f4], edx
call 0x55bda6
mov ecx, dword [esi + 0x44]
mov edx, dword [esi + 0x48]
mov eax, dword [esi + 0x4c]
mov dword [esp + 0x1f8], ecx
mov ecx, dword [esi + 0x50]
mov dword [esp + 0x1fc], edx
mov edx, dword [esi + 0x54]
mov dword [esp + 0x200], eax
mov eax, dword [esi + 0x58]
mov dword [esp + 0x204], ecx
mov ecx, dword [esi + 0x5c]
mov dword [esp + 0x208], edx
mov edx, dword [esi + 0x60]
mov dword [esp + 0x20c], eax
mov eax, dword [esi + 0x64]
mov dword [esp + 0x210], ecx
mov ecx, dword [esi + 0x68]
mov dword [esp + 0x214], edx
mov edx, dword [esi + 0x6c]
mov dword [esp + 0x218], eax
mov eax, dword [esi + 0x70]
mov dword [esp + 0x21c], ecx
mov ecx, dword [esi + 0x74]
mov dword [esp + 0x220], edx
mov edx, dword [esi + 0x78]
add esi, 0x7c
mov dword [esp + 0x228], ecx
push esi
lea ecx, [esp + 0x234]
mov dword [esp + 0x228], eax
mov dword [esp + 0x230], edx
call 0x55bda6
lea eax, [esp + 0x1b4]
mov edi, 1
push eax
push 0x4f4984
mov ecx, ebp
mov dword [esp + 0x20c], edi
call fcn.005235c0
mov ecx, dword [esp + 0x14]
mov esi, 0x64
mov eax, dword [ecx - 8]
cmp dword [esp + 0x1c], eax
jge 0x5216c5
lea edx, [esp + 0x1c]
lea eax, [esp + 0x14]
push edx
lea ecx, [esp + 0x134]
push eax
push ecx
mov ecx, ebp
call fcn.00525d70
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a0], 0xd
call 0x55bda6
lea ecx, [esp + 0x130]
mov byte [esp + 0x29c], 5
call 0x55bcb9
mov edx, dword [esp + 0x10]
cmp dword [edx - 8], ebx
je 0x5216ae
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x4f3f3c
call 0x55bd27
lea eax, [esp + 0x20]
push 0x3d
lea ecx, [esp + 0x1c]
push eax
lea edx, [esp + 0x14c]
push ecx
push edx
mov ecx, ebp
call fcn.00526130
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x2a0], 0xe
call 0x55bda6
lea ecx, [esp + 0x140]
mov byte [esp + 0x29c], 5
call 0x55bcb9
mov eax, dword [esp + 0x10]
push 0x4f497c
push eax
call 0x539964
add esp, 8
test eax, eax
jne 0x521649
lea ecx, [esp + 0x18]
push ecx
mov ecx, ebp
call fcn.00526df0
push ebx
lea edx, [esp + 0x1c]
push 0x64
push edx
mov ecx, ebp
mov edi, eax
call fcn.00525490
mov esi, eax
jmp 0x5216ae
mov eax, dword [esp + 0x10]
push 0x4f49b4
push eax
call 0x539964
add esp, 8
test eax, eax
jne 0x52167d
mov ecx, dword [esp + 0x204]
push ebx
lea edx, [esp + 0x1c]
push ecx
push edx
mov ecx, ebp
call fcn.00525490
mov dword [esp + 0x204], eax
jmp 0x5216ae
mov eax, dword [esp + 0x10]
push 0x4f49ac
push eax
call 0x539964
add esp, 8
test eax, eax
jne 0x5216ae
mov ecx, dword [esp + 0x1d4]
lea edx, [esp + 0x18]
push ecx
push edx
mov ecx, ebp
call fcn.00525320
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax - 8]
cmp ecx, eax
jl 0x521574
cmp edi, ebx
je 0x5216de
cmp dword [esp + 0x2b4], ebx
je 0x52171b
mov eax, dword [ebp + 0xb0]
add eax, esi
xor esi, esi
mov dword [ebp + 0xb0], eax
cmp dword [esp + 0x2b4], ebx
je 0x521735
mov edx, dword [esp + 0x204]
mov ecx, dword [ebp + 0xa8]
lea eax, [edx + 8]
cmp ecx, eax
jle 0x5216fd
mov eax, ecx
mov dword [ebp + 0xa8], eax
mov eax, dword [ebp + 0x68]
mov dword [ebp + 0xb4], eax
mov eax, dword [esp + 0x20]
add eax, esi
mov dword [esp + 0x20], eax
jmp 0x52322e
mov ecx, dword [ebp + 0x148]
mov edx, dword [ebp + 0x140]
push 0x64
sub ecx, edx
push esi
push ecx
call dword [fcn.004b039c]
mov esi, eax
cmp dword [esp + 0x2a8], ebx
jne 0x521742
xor edi, edi
jmp 0x52174c
mov ecx, dword [esp + 0x2a8]
mov edi, dword [ecx + 4]
mov eax, dword [ebp + 0xa8]
mov ecx, dword [esp + 0x204]
cdq
sub eax, edx
mov edx, dword [esp + 0x24]
sar eax, 1
add eax, edx
mov edx, dword [esp + 0x1d4]
push ecx
mov ecx, dword [esp + 0x24]
push 1
push edx
lea edx, [esi + ecx]
push eax
push edx
push eax
push ecx
push edi
lea ecx, [ebp + 0xb8]
call fcn.0052de50
add dword [esp + 0x20], esi
jmp 0x52322e
mov eax, dword [esp + 0x10]
push 0x4f4978
push eax
call 0x539964
add esp, 8
test eax, eax
je 0x523123
mov ecx, dword [esp + 0x10]
push 0x4f4974
push ecx
call 0x539964
add esp, 8
test eax, eax
je 0x523123
mov edx, dword [esp + 0x10]
push 0x4f4970
push edx
call 0x539964
add esp, 8
test eax, eax
je 0x523088
mov eax, dword [esp + 0x10]
push 0x4f496c
push eax
call 0x539964
add esp, 8
test eax, eax
je 0x523088
mov ecx, dword [esp + 0x10]
push 0x4f4964
push ecx
call 0x539964
add esp, 8
test eax, eax
jne 0x52183d
push 0x4f4964
mov ecx, esi
call 0x55bdf6
push edi
mov ecx, ebp
call fcn.005235f0
test eax, eax
je 0x52322e
cmp edi, ebx
jne 0x521830
mov dword [ebp + 0x68], ebx
mov edx, dword [esp + 0x2a8]
push edx
jmp 0x523227
mov eax, dword [esp + 0x10]
push 0x4f495c
push eax
call 0x539964
add esp, 8
test eax, eax
jne 0x521883
push 0x4f495c
mov ecx, esi
call 0x55bdf6
push edi
mov ecx, ebp
call fcn.005235f0
test eax, eax
je 0x52322e
cmp edi, ebx
jne 0x52321f
mov dword [ebp + 0x68], 1
jmp 0x52321f
mov edx, dword [esp + 0x10]
push 0x4f4954
push edx
call 0x539964
add esp, 8
test eax, eax
jne 0x5218cd
push 0x4f4954
mov ecx, esi
call 0x55bdf6
push edi
mov ecx, ebp
call fcn.005235f0
test eax, eax
je 0x52322e
cmp edi, ebx
jne 0x5218c0
mov dword [ebp + 0x68], 2
mov eax, dword [esp + 0x2a8]
push eax
jmp 0x523227
mov ecx, dword [esp + 0x10]
push 0x4f4948
push ecx
call 0x539964
add esp, 8
test eax, eax
jne 0x521917
push 0x4f4948
mov ecx, esi
call 0x55bdf6
push edi
mov ecx, ebp
call fcn.005235f0
test eax, eax
je 0x52322e
cmp edi, ebx
jne 0x52190a
mov dword [ebp + 0x6c], 3
mov edx, dword [esp + 0x2a8]
push edx
jmp 0x523227
mov eax, dword [esp + 0x10]
push 0x4f4944
push eax
call 0x539964
add esp, 8
test eax, eax
jne 0x521959
push 0x4f4944
mov ecx, esi
call 0x55bdf6
push edi
mov ecx, ebp
call fcn.005235f0
test eax, eax
je 0x52322e
cmp edi, ebx
jne 0x52321f
mov dword [ebp + 0x6c], ebx
jmp 0x52321f
mov edx, dword [esp + 0x10]
push 0x4f493c
push edx
call 0x539964
add esp, 8
test eax, eax
je 0x523054
mov eax, dword [esp + 0x10]
push 0x4f4934
push eax
call 0x539964
add esp, 8
test eax, eax
je 0x523054
mov ecx, dword [esp + 0x10]
push 0x4f492c
push ecx
call 0x539964
add esp, 8
test eax, eax
jne 0x5219d7
push 0x4f492c
mov ecx, esi
call 0x55bdf6
push edi
mov ecx, ebp
call fcn.005235f0
test eax, eax
je 0x52322e
cmp edi, ebx
jne 0x5219ca
mov dword [ebp + 0x6c], 2
mov edx, dword [esp + 0x2a8]
push edx
jmp 0x523227
mov eax, dword [esp + 0x10]
push 0x4f4928
push eax
call 0x539964
add esp, 8
test eax, eax
jne 0x521d4d
mov eax, dword [0x4f6f34]
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], eax
mov ecx, 1
mov eax, 0x64
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xec], ecx
lea ecx, [esp + 0xf4]
mov byte [esp + 0x29c], 0x11
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xf0], 0xff00ff
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], ebx
call 0x55bc44
lea ecx, [esp + 0xf8]
call 0x55bc44
lea ecx, [esp + 0xbc]
lea edx, [esp + 0x14]
push ecx
push edx
mov ecx, ebp
call fcn.005267c0
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xf4]
mov esi, dword [esp + 0xc8]
mov edx, dword [esp + 0xc4]
cmp eax, ebx
jne 0x521ac6
cmp edx, ebx
jne 0x521ac6
cmp esi, ebx
jne 0x521ac6
cmp dword [ecx - 8], ebx
je 0x521d1e
xor ebx, ebx
cmp eax, ebx
mov dword [esp + 0x38], 1
je 0x521ae2
push eax
mov ecx, ebp
call fcn.0051c860
mov esi, eax
mov dword [esp + 0x30], esi
jmp 0x521b29
cmp dword [ecx - 8], ebx
je 0x521af7
push ecx
mov ecx, ebp
call fcn.0051c8a0
mov esi, eax
mov dword [esp + 0x30], esi
jmp 0x521b29
cmp edx, ebx
je 0x521b13
mov eax, dword [esp + 0xf8]
mov ecx, ebp
push eax
push edx
call fcn.0051c8c0
mov esi, eax
mov dword [esp + 0x30], esi
jmp 0x521b29
cmp esi, ebx
je 0x521d1e
mov dword [esp + 0x30], esi
mov dword [esp + 0x38], 0
xor ebx, ebx
cmp esi, ebx
je 0x521d1e
lea ecx, [esp + 0xbc]
push ecx
mov ecx, ebp
call fcn.00524550
lea edx, [esp + 0x28c]
push esi
lea ecx, [ebp + 0xb8]
push edx
mov dword [esp + 0x44], eax
call fcn.0052b610
mov ecx, eax
mov eax, dword [ecx]
mov esi, dword [ecx + 4]
mov ecx, dword [esp + 0xe8]
test ecx, ecx
je 0x521b7f
mov edx, dword [esp + 0xd4]
push 0x64
push edx
push eax
call dword [fcn.004b039c]
mov ebx, eax
jmp 0x521b86
mov ebx, dword [esp + 0xd4]
mov eax, dword [esp + 0xec]
test eax, eax
je 0x521ba4
mov eax, dword [esp + 0xd8]
push 0x64
push eax
push esi
call dword [fcn.004b039c]
jmp 0x521bab
mov eax, dword [esp + 0xd8]
test ebx, ebx
mov dword [esp + 0x104], eax
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], eax
je 0x521be7
test eax, eax
je 0x521be7
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x521be7
mov eax, dword [ebp + 0x164]
mov ecx, dword [ebp + 0x168]
lea edx, [ebx + eax]
mov eax, dword [esp + 0x54]
add eax, ecx
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x2b4]
test eax, eax
je 0x521bfb
mov eax, dword [ebp + 0x68]
mov dword [ebp + 0xb4], eax
mov ecx, dword [esp + 0x2b4]
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x24]
push edx
push eax
lea edx, [esp + 0x290]
push ecx
push edx
mov ecx, ebp
call fcn.00523a90
mov esi, dword [eax]
test ebx, ebx
mov edi, dword [eax + 4]
je 0x521cfd
mov eax, dword [esp + 0x104]
test eax, eax
je 0x521cfd
mov eax, dword [esp + 0x2b4]
test eax, eax
jne 0x521cfd
mov ecx, dword [esp + 0x50]
sub esp, 0x10
mov eax, dword [esp + 0x64]
mov edx, esp
add ecx, esi
add eax, edi
mov dword [edx], esi
mov dword [edx + 4], edi
mov dword [edx + 8], ecx
mov ecx, ebp
mov dword [edx + 0xc], eax
call fcn.00523500
mov eax, dword [ebp + 0x9c]
test eax, eax
je 0x521c97
mov eax, dword [ebp + 0x154]
mov ecx, dword [ebp + 0x150]
cmp eax, ecx
jne 0x521c97
mov ecx, dword [esp + 0xe0]
mov dword [esp + 0xdc], ecx
mov edx, dword [ebp + 0x178]
mov eax, dword [ebp + 0x170]
mov ecx, dword [ebp + 0x16c]
push edx
mov edx, dword [ebp + 0x168]
push eax
mov eax, dword [ebp + 0x164]
push ecx
mov ecx, dword [esp + 0x48]
push edx
mov edx, dword [esp + 0xec]
push eax
mov eax, dword [esp + 0x104]
push ecx
mov ecx, dword [esp + 0xfc]
push edx
mov edx, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0x124]
push ecx
mov ecx, dword [esp + 0x2cc]
push edx
push eax
push ebx
mov edx, dword [ecx + 4]
push edi
push esi
push edx
lea ecx, [ebp + 0xb8]
call fcn.0052d110
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x20]
add ecx, eax
mov eax, dword [esp + 0x38]
test eax, eax
mov dword [esp + 0x20], ecx
je 0x521d1e
mov ecx, dword [esp + 0x30]
push ecx
call dword [fcn.004b0134]
lea ecx, [esp + 0xf8]
mov byte [esp + 0x29c], 0x12
call 0x55bcb9
lea ecx, [esp + 0xf4]
mov byte [esp + 0x29c], 5
call 0x55bcb9
xor ebx, ebx
jmp 0x52322e
mov edx, dword [esp + 0x10]
push 0x4f4920
push edx
call 0x539964
add esp, 8
test eax, eax
jne 0x52206f
mov eax, dword [0x4f6f34]
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1b0], eax
mov edi, dword [0x4b0438]
xor esi, esi
push 0xb
mov byte [esp + 0x2a0], 0x13
mov dword [esp + 0x17c], esi
mov dword [esp + 0x180], esi
mov dword [esp + 0x184], esi
call edi
push 0xc
mov dword [esp + 0x190], eax
mov dword [esp + 0x1a4], esi
call edi
lea ecx, [esp + 0x1ac]
mov dword [esp + 0x190], eax
mov dword [esp + 0x1a4], esi
mov dword [esp + 0x194], esi
mov dword [esp + 0x198], esi
call 0x55bc44
lea ecx, [esp + 0x1b0]
call 0x55bc44
lea eax, [esp + 0x174]
lea ecx, [esp + 0x14]
push eax
push ecx
mov ecx, ebp
call fcn.005267c0
mov edx, dword [esp + 0x178]
mov ebx, dword [esp + 0x180]
mov edi, dword [esp + 0x17c]
cmp edx, esi
mov esi, dword [esp + 0x1ac]
jne 0x521e30
test edi, edi
jne 0x521e30
test ebx, ebx
jne 0x521e30
mov eax, dword [esi - 8]
test eax, eax
je 0x522040
mov eax, dword [esp + 0x18c]
mov ecx, dword [esp + 0x190]
test edx, edx
mov dword [esp + 0x38], 1
je 0x521e58
push ecx
push eax
push edx
mov ecx, ebp
call fcn.0051c780
mov ebx, eax
jmp 0x521e97
mov edx, dword [esi - 8]
test edx, edx
je 0x521e6d
push ecx
push eax
push esi
mov ecx, ebp
call fcn.0051c7c0
mov ebx, eax
jmp 0x521e97
test edi, edi
je 0x521e87
mov edx, dword [esp + 0x1b0]
push edx
push ecx
push eax
push edi
mov ecx, ebp
call fcn.0051c7e0
mov ebx, eax
jmp 0x521e97
test ebx, ebx
je 0x522040
mov dword [esp + 0x38], 0
test ebx, ebx
je 0x522040
lea eax, [esp + 0x174]
mov ecx, ebp
push eax
call fcn.00524550
lea edx, [esp + 0x25c]
mov esi, eax
push ebx
lea ecx, [ebp + 0xb8]
push edx
mov dword [esp + 0x3c], esi
call fcn.0052b590
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov edi, ecx
mov eax, edx
test ecx, ecx
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], edx
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], eax
je 0x521f11
test edx, edx
je 0x521f11
test esi, esi
je 0x521f11
mov eax, dword [ebp + 0x164]
mov ecx, dword [ebp + 0x168]
mov edx, edi
add edx, eax
mov eax, dword [esp + 0x4c]
add eax, ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x2b4]
test eax, eax
je 0x521f25
mov ecx, dword [ebp + 0x68]
mov dword [ebp + 0xb4], ecx
mov edx, dword [esp + 0x2b4]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x24]
push eax
push ecx
lea eax, [esp + 0x260]
push edx
push eax
mov ecx, ebp
call fcn.00523a90
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [esp + 0xa8]
test eax, eax
je 0x522023
mov eax, dword [esp + 0xac]
test eax, eax
je 0x522023
mov eax, dword [esp + 0x2b4]
test eax, eax
jne 0x522023
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
sub esp, 0x10
lea eax, [edi + ecx]
lea ecx, [esi + edx]
mov edx, esp
mov dword [edx], esi
mov dword [edx + 4], edi
mov dword [edx + 8], ecx
mov ecx, ebp
mov dword [edx + 0xc], eax
call fcn.00523500
mov eax, dword [ebp + 0x9c]
test eax, eax
je 0x521fca
mov eax, dword [ebp + 0x154]
mov ecx, dword [ebp + 0x150]
cmp eax, ecx
jne 0x521fca
mov ecx, dword [esp + 0x198]
mov dword [esp + 0x194], ecx
mov edx, dword [ebp + 0x178]
mov eax, dword [ebp + 0x170]
mov ecx, dword [ebp + 0x16c]
push edx
mov edx, dword [ebp + 0x168]
push eax
mov eax, dword [ebp + 0x164]
push ecx
mov ecx, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x1a4]
push eax
mov eax, dword [esp + 0xc0]
push ecx
mov ecx, dword [esp + 0xc0]
push edx
mov edx, dword [esp + 0x2c4]
push ebx
push eax
push ecx
mov eax, dword [edx + 4]
push edi
push esi
push eax
lea ecx, [ebp + 0xb8]
call fcn.0052d3a0
mov eax, dword [esp + 0x38]
test eax, eax
je 0x522032
push ebx
call dword [fcn.004b04cc]
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x20]
add eax, ecx
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x1b0]
mov byte [esp + 0x29c], 0x14
call 0x55bcb9
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x29c], 5
call 0x55bcb9
xor ebx, ebx
jmp 0x52322e
mov edx, dword [esp + 0x10]
push 0x4f4918
push edx
call 0x539964
add esp, 8
test eax, eax
je 0x5229e1
mov eax, dword [esp + 0x10]
push 0x4f4910
push eax
call 0x539964
add esp, 8
test eax, eax
je 0x5229e1
mov ecx, dword [esp + 0x10]
push 0x4f4908
push ecx
call 0x539964
add esp, 8
test eax, eax
jne 0x5223c4
push 0x5149bc
lea ecx, [esp + 0x9c]
xor esi, esi
call 0x55bd27
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov byte [esp + 0x29c], 0x17
mov eax, dword [edx - 8]
cmp ecx, eax
jge 0x5223ab
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x14]
push eax
lea edx, [esp + 0x174]
push ecx
push edx
mov ecx, ebp
call fcn.00525d70
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a0], 0x18
call 0x55bda6
lea ecx, [esp + 0x170]
mov byte [esp + 0x29c], 0x17
call 0x55bcb9
mov eax, dword [esp + 0x10]
cmp dword [eax - 8], ebx
je 0x522262
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x4f3f3c
call 0x55bd27
lea ecx, [esp + 0x20]
push 0x3d
lea edx, [esp + 0x1c]
push ecx
lea eax, [esp + 0x148]
push edx
push eax
mov ecx, ebp
call fcn.00526130
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x2a0], 0x19
call 0x55bda6
lea ecx, [esp + 0x13c]
mov byte [esp + 0x29c], 0x17
call 0x55bcb9
mov ecx, dword [esp + 0x10]
push 0x4f4900
push ecx
call 0x539964
add esp, 8
test eax, eax
jne 0x5221b4
push ebx
lea edx, [esp + 0x1c]
push esi
push edx
mov ecx, ebp
call fcn.00525490
mov esi, eax
jmp 0x522262
mov eax, dword [esp + 0x10]
push 0x4f48f8
push eax
call 0x539964
add esp, 8
test eax, eax
jne 0x5221df
push ebx
lea ecx, [esp + 0x1c]
push ebx
push ecx
mov ecx, ebp
call fcn.00525490
mov esi, eax
jmp 0x522262
mov edx, dword [esp + 0x10]
push 0x4f48f0
push edx
call 0x539964
add esp, 8
test eax, eax
jne 0x522262
push ecx
lea eax, [esp + 0x9c]
mov ecx, esp
mov dword [esp + 0x30], esp
push eax
call 0x55ba2e
push ecx
lea edx, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
mov byte [esp + 0x2a8], 0x1a
call 0x55ba2e
lea eax, [esp + 0x110]
mov ecx, ebp
push eax
mov byte [esp + 0x2a8], 0x17
call fcn.00526bd0
push eax
lea ecx, [esp + 0x9c]
mov byte [esp + 0x2a0], 0x1b
call 0x55bda6
lea ecx, [esp + 0x108]
mov byte [esp + 0x29c], 0x17
call 0x55bcb9
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 8]
mov ecx, dword [esp + 0x1c]
cmp ecx, eax
jl 0x5220eb
cmp esi, ebx
je 0x5223ab
push 0x5149bc
lea ecx, [esp + 0x48]
call 0x55bd27
lea edx, [esp + 0x148]
push esi
push edx
mov ecx, ebp
mov byte [esp + 0x2a4], 0x1c
call fcn.0051c940
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0x2a0], 0x1d
call 0x55bda6
lea ecx, [esp + 0x148]
mov byte [esp + 0x29c], 0x1c
call 0x55bcb9
lea eax, [esp + 0x28]
mov ecx, ebp
push eax
call fcn.00527530
mov eax, dword [esp + 0x44]
mov ecx, dword [eax - 8]
cmp ecx, ebx
je 0x52239a
lea edx, [esp + 0x10c]
push edx
push ecx
push eax
mov eax, dword [esp + 0x2b4]
mov ecx, dword [eax + 8]
push ecx
call dword [fcn.004b00ec]
cmp dword [esp + 0x2b4], ebx
je 0x522311
mov edx, dword [ebp + 0x68]
mov dword [ebp + 0xb4], edx
mov eax, dword [esp + 0x2b4]
mov ebx, dword [esp + 0x110]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
push eax
push ebx
push ecx
lea eax, [esp + 0x280]
push edx
push eax
mov ecx, ebp
call fcn.005239e0
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [esp + 0x2b4]
test eax, eax
jne 0x522387
mov ecx, dword [esp + 0x10c]
sub esp, 0x10
mov edx, esp
lea eax, [esi + ecx]
lea ecx, [edi + ebx]
mov dword [edx], esi
mov dword [edx + 4], edi
mov dword [edx + 8], eax
mov dword [edx + 0xc], ecx
mov ecx, ebp
call fcn.00523500
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x2a8]
mov ecx, dword [eax - 8]
mov ebx, dword [edx]
push ecx
push eax
push edi
push esi
mov ecx, edx
call dword [ebx + 0x5c]
mov eax, dword [esp + 0x10c]
mov ecx, dword [esp + 0x20]
add ecx, eax
xor ebx, ebx
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x44]
mov byte [esp + 0x29c], 0x17
call 0x55bcb9
lea ecx, [esp + 0x98]
mov byte [esp + 0x29c], 5
call 0x55bcb9
jmp 0x52322e
mov ecx, dword [esp + 0x10]
push 0x4f47ac
push ecx
call 0x539964
add esp, 8
test eax, eax
je 0x5229a7
mov edx, dword [esp + 0x10]
push 0x4f48ec
push edx
call 0x539964
add esp, 8
test eax, eax
je 0x5229a7
mov eax, dword [esp + 0x10]
push 0x4f48e8
push eax
call 0x539964
add esp, 8
test eax, eax
je 0x5229a7
mov ecx, dword [esp + 0x10]
push 0x4f48e4
push ecx
call 0x539964
add esp, 8
test eax, eax
je 0x5229a7
mov edx, dword [esp + 0x10]
push 0x4f48e0
push edx
call 0x539964
add esp, 8
test eax, eax
je 0x5229a7
mov eax, dword [esp + 0x10]
push 0x4f48dc
push eax
call 0x539964
add esp, 8
test eax, eax
je 0x5229a7
mov ecx, dword [esp + 0x10]
push 0x4f48d8
push ecx
call 0x539964
add esp, 8
test eax, eax
je 0x5229a7
mov edx, dword [esp + 0x10]
push 0x4f48d4
push edx
call 0x539964
add esp, 8
test eax, eax
je 0x5229a7
mov eax, dword [esp + 0x10]
push 0x4f48cc
push eax
call 0x539964
add esp, 8
test eax, eax
je 0x5229a7
mov ecx, dword [esp + 0x10]
push 0x4f48c8
push ecx
call 0x539964
add esp, 8
test eax, eax
je 0x5229a7
mov edx, dword [esp + 0x10]
push 0x4f48c4
push edx
call 0x539964
add esp, 8
test eax, eax
je 0x5229a7
mov eax, dword [esp + 0x10]
push 0x4f48bc
push eax
call 0x539964
add esp, 8
test eax, eax
je 0x5229a7
mov ecx, dword [esp + 0x10]
push 0x4f48b8
push ecx
call 0x539964
add esp, 8
test eax, eax
je 0x5229a7
mov edx, dword [esp + 0x10]
push 0x4f48b4
push edx
call 0x539964
add esp, 8
test eax, eax
je 0x5229a7
mov eax, dword [esp + 0x10]
push 0x4f48ac
push eax
call 0x539964
add esp, 8
test eax, eax
je 0x5227ff
mov ecx, dword [esp + 0x10]
push 0x4f48a8
push ecx
call 0x539964
add esp, 8
test eax, eax
je 0x5227ff
mov edx, dword [esp + 0x10]
push 0x4f48a4
push edx
call 0x539964
add esp, 8
test eax, eax
jne 0x52322e
push 0x4f489c
mov ecx, esi
call 0x55bdf6
push edi
mov ecx, ebp
call fcn.005235f0
test eax, eax
je 0x52322e
cmp edi, ebx
jne 0x5227f2
lea edi, [ebp + 0xa0]
mov dword [ebp + 0x9c], 2
mov ecx, edi
call 0x55bc44
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax - 8]
cmp ecx, eax
jge 0x5227b3
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x14]
push ecx
lea eax, [esp + 0x118]
push edx
push eax
mov ecx, ebp
call fcn.00525d70
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a0], 0x24
call 0x55bda6
lea ecx, [esp + 0x114]
mov byte [esp + 0x29c], 5
call 0x55bcb9
mov ecx, dword [esp + 0x10]
cmp dword [ecx - 8], ebx
je 0x5227a0
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x4f3f3c
call 0x55bd27
lea edx, [esp + 0x20]
push 0x3d
lea eax, [esp + 0x1c]
push edx
lea ecx, [esp + 0x15c]
push eax
push ecx
mov ecx, ebp
call fcn.00526130
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x2a0], 0x25
call 0x55bda6
lea ecx, [esp + 0x150]
mov byte [esp + 0x29c], 5
call 0x55bcb9
mov edx, dword [esp + 0x10]
push 0x4f4894
push edx
call 0x539964
add esp, 8
test eax, eax
je 0x522696
mov eax, dword [esp + 0x10]
push 0x4f4890
push eax
call 0x539964
add esp, 8
test eax, eax
jne 0x522705
push ecx
mov dword [ebp + 0x9c], 1
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x5149bc
call 0x55bd27
push ecx
lea edx, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
mov byte [esp + 0x2a8], 0x26
call 0x55ba2e
lea eax, [esp + 0x128]
mov ecx, ebp
push eax
mov byte [esp + 0x2a8], 5
call fcn.00526bd0
push eax
mov ecx, edi
mov byte [esp + 0x2a0], 0x27
call 0x55bda6
lea ecx, [esp + 0x120]
mov byte [esp + 0x29c], 5
call 0x55bcb9
mov ecx, dword [esp + 0x10]
push 0x4f488c
push ecx
call 0x539964
add esp, 8
test eax, eax
je 0x522731
mov edx, dword [esp + 0x10]
push 0x4f4884
push edx
call 0x539964
add esp, 8
test eax, eax
jne 0x5227a0
push ecx
mov dword [ebp + 0x9c], 2
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x5149bc
call 0x55bd27
push ecx
lea eax, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
mov byte [esp + 0x2a8], 0x28
call 0x55ba2e
lea ecx, [esp + 0x160]
mov byte [esp + 0x2a4], 5
push ecx
mov ecx, ebp
call fcn.00526bd0
push eax
mov ecx, edi
mov byte [esp + 0x2a0], 0x29
call 0x55bda6
lea ecx, [esp + 0x158]
mov byte [esp + 0x29c], 5
call 0x55bcb9
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov eax, dword [edx - 8]
cmp ecx, eax
jl 0x5225cc
mov edx, dword [ebp + 0x154]
mov ecx, dword [ebp + 0x150]
inc edx
push esi
mov eax, edx
mov dword [ebp + 0x154], edx
cmp eax, ecx
jne 0x5227e6
push 0x4f487c
mov ecx, ebp
call fcn.005235c0
mov eax, dword [esp + 0x2a8]
push eax
jmp 0x523227
push 0x4f4874
mov ecx, ebp
call fcn.005235c0
mov eax, dword [esp + 0x2a8]
push eax
jmp 0x523227
push 0x4f48ac
mov ecx, esi
call 0x55bdf6
cmp edi, ebx
jne 0x522989
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x14]
push ecx
lea eax, [esp + 0x130]
push edx
push eax
mov ecx, ebp
call fcn.00525d70
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x2a0], 0x1f
call 0x55bda6
lea ecx, [esp + 0x12c]
mov byte [esp + 0x29c], 5
call 0x55bcb9
mov ecx, dword [esp + 0x10]
cmp dword [ecx - 8], ebx
je 0x52322e
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x4f3f3c
call 0x55bd27
lea edx, [esp + 0x20]
push 0x3d
lea eax, [esp + 0x1c]
push edx
lea ecx, [esp + 0x108]
push eax
push ecx
mov ecx, ebp
call fcn.00526130
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x2a0], 0x20
call 0x55bda6
lea ecx, [esp + 0xfc]
mov byte [esp + 0x29c], 5
call 0x55bcb9
mov edx, dword [esp + 0x10]
push 0x4f486c
push edx
call 0x539964
add esp, 8
test eax, eax
jne 0x52322e
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x5149bc
call 0x55bd27
push ecx
lea eax, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
mov byte [esp + 0x2a8], 0x21
call 0x55ba2e
lea ecx, [esp + 0xac]
mov byte [esp + 0x2a4], 5
push ecx
mov ecx, ebp
call fcn.00526bd0
push ebx
mov ecx, ebp
mov byte [esp + 0x2a0], 0x22
call fcn.005235f0
test eax, eax
je 0x522970
lea edx, [esp + 0xa4]
lea eax, [esp + 0x168]
push edx
push 0x4f4868
push eax
call 0x55bf76
mov eax, dword [eax]
push esi
push eax
mov ecx, ebp
mov byte [esp + 0x2a4], 0x23
call fcn.005235c0
lea ecx, [esp + 0x168]
mov byte [esp + 0x29c], 0x22
call 0x55bcb9
mov ecx, dword [esp + 0x2a8]
push ecx
mov ecx, ebp
call fcn.00523900
lea ecx, [esp + 0xa4]
mov byte [esp + 0x29c], 5
call 0x55bcb9
jmp 0x52322e
push 1
mov ecx, ebp
call fcn.005235f0
test eax, eax
je 0x52322e
mov edx, dword [esp + 0x2a8]
push edx
jmp 0x523227
lea eax, [esp + 0x10]
mov ecx, esi
push eax
call 0x55bda6
push edi
mov ecx, ebp
call fcn.005235f0
test eax, eax
je 0x52322e
cmp edi, ebx
jne 0x5229d4
mov ecx, dword [esp + 0x10]
push esi
push ecx
mov ecx, ebp
call fcn.005235c0
mov edx, dword [esp + 0x2a8]
push edx
jmp 0x523227
mov eax, dword [0x4f6f34]
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov esi, dword [0x4b0438]
mov eax, 0x64
mov edi, 1
push 0xb
mov byte [esp + 0x2a0], 0x15
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x74], eax
mov dword [esp + 0x88], edi
mov dword [esp + 0x78], eax
mov dword [esp + 0x8c], edi
mov dword [esp + 0x84], ebx
mov dword [esp + 0x90], 0xff00ff
call esi
push 0xc
mov dword [esp + 0x6c], eax
call esi
lea ecx, [esp + 0x90]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
call 0x55bc44
lea ecx, [esp + 0x94]
call 0x55bc44
lea eax, [esp + 0x58]
lea ecx, [esp + 0x14]
push eax
push ecx
mov ecx, ebp
call fcn.005267c0
lea edx, [esp + 0x58]
mov ecx, ebp
push edx
call fcn.00524550
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x60]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x5c]
cmp eax, ebx
jne 0x522cd4
cmp esi, ebx
jne 0x522cd4
cmp edx, ebx
jne 0x522cd4
cmp dword [ecx - 8], ebx
jne 0x522cd4
lea eax, [ebp + 0x100]
cmp eax, ebx
je 0x523025
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x523025
mov eax, dword [ebp + 0x104]
push eax
call dword [0x4b001c]
mov ecx, dword [esp + 0x58]
cmp ecx, eax
jge 0x523025
push 0
push ecx
mov ecx, dword [ebp + 0x104]
push ecx
call dword [0x4b0030]
test eax, eax
mov dword [esp + 0x38], eax
je 0x523025
mov eax, dword [esp + 0x84]
mov esi, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x11c], esi
test eax, eax
je 0x522b43
mov edx, dword [ebp + 0x108]
push 0x64
push ebx
push edx
call dword [fcn.004b039c]
mov ebx, eax
mov eax, dword [esp + 0x88]
test eax, eax
je 0x522b6b
mov eax, dword [esp + 0x74]
mov ecx, dword [ebp + 0x10c]
push 0x64
push eax
push ecx
call dword [fcn.004b039c]
mov esi, eax
mov dword [esp + 0x11c], esi
mov ecx, esi
mov dword [esp + 0x9c], ebx
test ebx, ebx
mov dword [esp + 0xa0], ecx
je 0x522ba9
test esi, esi
je 0x522ba9
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x522ba9
mov eax, dword [ebp + 0x164]
add eax, ebx
mov dword [esp + 0x9c], eax
mov eax, dword [ebp + 0x168]
add ecx, eax
mov dword [esp + 0xa0], ecx
mov eax, dword [esp + 0x2b4]
test eax, eax
je 0x522bbd
mov edx, dword [ebp + 0x68]
mov dword [ebp + 0xb4], edx
mov eax, dword [esp + 0x2b4]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x24]
push ecx
push edx
lea ecx, [esp + 0x270]
push eax
push ecx
mov ecx, ebp
call fcn.00523a90
mov esi, dword [eax]
test ebx, ebx
mov edi, dword [eax + 4]
je 0x522cbe
mov eax, dword [esp + 0x11c]
test eax, eax
je 0x522cbe
mov eax, dword [esp + 0x2b4]
test eax, eax
jne 0x522cbe
mov edx, dword [esp + 0x9c]
sub esp, 0x10
mov ecx, dword [esp + 0xb0]
lea eax, [esi + edx]
mov edx, esp
add ecx, edi
mov dword [edx], esi
mov dword [edx + 4], edi
mov dword [edx + 8], eax
mov dword [edx + 0xc], ecx
mov ecx, ebp
call fcn.00523500
mov eax, dword [ebp + 0x9c]
test eax, eax
je 0x522c5d
mov eax, dword [ebp + 0x154]
mov ecx, dword [ebp + 0x150]
cmp eax, ecx
jne 0x522c5d
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x78], ecx
mov edx, dword [ebp + 0x178]
mov eax, dword [ebp + 0x170]
mov ecx, dword [ebp + 0x16c]
push edx
mov edx, dword [ebp + 0x168]
push eax
mov eax, dword [ebp + 0x164]
push ecx
mov ecx, dword [esp + 0x48]
push edx
mov edx, dword [esp + 0x88]
push eax
mov eax, dword [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x134]
push edx
mov edx, dword [esp + 0x2c4]
push eax
push ecx
push ebx
mov eax, dword [edx + 4]
push edi
push esi
push eax
lea ecx, [ebp + 0xb8]
call fcn.0052d3a0
mov ecx, dword [esp + 0x38]
push ecx
call dword [fcn.004b04cc]
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x20]
add eax, edx
mov dword [esp + 0x20], eax
jmp 0x523025
cmp eax, ebx
mov dword [esp + 0x34], edi
je 0x522ce6
push eax
mov ecx, ebp
call fcn.0051c860
jmp 0x522d1b
cmp dword [ecx - 8], ebx
je 0x522cf5
push ecx
mov ecx, ebp
call fcn.0051c8a0
jmp 0x522d1b
cmp esi, ebx
je 0x522d0b
mov eax, dword [esp + 0x94]
mov ecx, ebp
push eax
push esi
call fcn.0051c8c0
jmp 0x522d1b
cmp edx, ebx
je 0x523025
xor ebx, ebx
mov eax, edx
mov dword [esp + 0x34], ebx
cmp eax, ebx
mov dword [esp + 0x30], eax
je 0x523025
mov eax, dword [esp + 0x68]
test eax, eax
je 0x523025
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x523025
mov edx, dword [esp + 0x30]
lea eax, [esp + 0x244]
push edx
lea ecx, [ebp + 0xb8]
push eax
call fcn.0052b610
mov ebx, dword [eax]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x84]
test eax, eax
mov dword [esp + 0x240], ecx
je 0x522d88
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x68]
push 0x64
push edx
push eax
call dword [fcn.004b039c]
mov ecx, eax
mov dword [esp + 0x70], ecx
jmp 0x522d8c
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x88]
test eax, eax
je 0x522db3
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x6c]
push 0x64
push ecx
push edx
call dword [fcn.004b039c]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x74], eax
jmp 0x522db7
mov eax, dword [esp + 0x74]
mov edi, ecx
mov esi, eax
test ecx, ecx
mov dword [esp + 0x234], edi
je 0x522de9
test eax, eax
je 0x522de9
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x522de9
mov edi, dword [ebp + 0x164]
mov esi, dword [ebp + 0x168]
add edi, ecx
add esi, eax
mov dword [esp + 0x234], edi
mov eax, ebx
mov ebx, dword [esp + 0x58]
cdq
idiv dword [esp + 0x68]
mov ecx, eax
mov eax, dword [esp + 0x240]
cdq
idiv dword [esp + 0x6c]
mov dword [esp + 0x2c], ecx
mov edx, eax
imul edx, ecx
cmp ebx, edx
jge 0x523012
test ecx, ecx
je 0x523012
test eax, eax
je 0x523012
mov ebx, dword [esp + 0x2b4]
test ebx, ebx
je 0x522e37
mov eax, dword [ebp + 0x68]
mov dword [ebp + 0xb4], eax
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
push ebx
push esi
push ecx
lea eax, [esp + 0x258]
push edx
push eax
mov ecx, ebp
call fcn.00523a90
mov edx, dword [esp + 0x70]
mov ecx, eax
test edx, edx
mov eax, dword [ecx]
mov dword [esp + 0x124], eax
mov ecx, dword [ecx + 4]
mov dword [esp + 0x128], ecx
je 0x52300e
mov edx, dword [esp + 0x74]
test edx, edx
je 0x52300e
test ebx, ebx
jne 0x52300e
sub esp, 0x10
add edi, eax
mov edx, esp
add esi, ecx
mov dword [edx], eax
mov dword [edx + 4], ecx
mov ecx, ebp
mov dword [edx + 8], edi
mov dword [edx + 0xc], esi
call fcn.00523500
mov eax, dword [ebp + 0x9c]
test eax, eax
je 0x522ec4
mov eax, dword [ebp + 0x154]
mov ecx, dword [ebp + 0x150]
cmp eax, ecx
jne 0x522ec4
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x78], ecx
mov ebx, dword [esp + 0x2a8]
mov edi, dword [fcn.004b00d0]
mov edx, dword [ebx + 4]
push edx
call edi
mov esi, eax
mov eax, dword [ebx + 4]
push eax
call edi
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
mov edi, eax
mov eax, dword [ebx + 4]
push ecx
push edx
push eax
call dword [fcn.004b0084]
mov ecx, dword [esp + 0x30]
mov ebx, eax
push ecx
push esi
call dword [fcn.004b0090]
push ebx
push edi
mov dword [esp + 0x40], eax
call dword [fcn.004b0090]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x58]
xor edx, edx
div ecx
push 0xcc0020
xor edx, edx
imul eax, dword [esp + 0x70]
push eax
mov eax, dword [esp + 0x60]
div ecx
mov eax, dword [esp + 0x70]
imul edx, eax
push edx
mov edx, dword [esp + 0x78]
push esi
push edx
push eax
push 0
push 0
push edi
call dword [fcn.004b00cc]
mov eax, dword [esp + 0x38]
push eax
push esi
call dword [fcn.004b0090]
mov ecx, dword [esp + 0xb0]
push ecx
push edi
call dword [fcn.004b0090]
push esi
mov esi, dword [fcn.004b00c0]
call esi
push edi
call esi
mov edx, dword [esp + 0x38]
mov esi, dword [fcn.004b0134]
push edx
call esi
mov eax, dword [esp + 0xb0]
push eax
call esi
mov ecx, dword [ebp + 0x178]
mov edx, dword [ebp + 0x170]
mov eax, dword [ebp + 0x16c]
push ecx
mov ecx, dword [ebp + 0x168]
push edx
mov edx, dword [ebp + 0x164]
push eax
mov eax, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x88]
push edx
push eax
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0x98]
push ecx
mov ecx, dword [esp + 0x90]
push edx
mov edx, dword [esp + 0x90]
push eax
mov eax, dword [esp + 0x14c]
push ebx
push ecx
mov ecx, dword [esp + 0x150]
push edx
mov edx, dword [esp + 0x2d8]
push eax
push ecx
lea ecx, [ebp + 0xb8]
mov eax, dword [edx + 4]
push eax
call fcn.0052d110
push ebx
call esi
mov edi, dword [esp + 0x234]
add dword [esp + 0x20], edi
mov eax, dword [esp + 0x34]
test eax, eax
je 0x523025
mov ecx, dword [esp + 0x30]
push ecx
call dword [fcn.004b0134]
lea ecx, [esp + 0x94]
mov byte [esp + 0x29c], 0x16
call 0x55bcb9
lea ecx, [esp + 0x90]
mov byte [esp + 0x29c], 5
call 0x55bcb9
xor ebx, ebx
jmp 0x52322e
push 0x4f4934
mov ecx, esi
call 0x55bdf6
push edi
mov ecx, ebp
call fcn.005235f0
test eax, eax
je 0x52322e
cmp edi, ebx
jne 0x52307b
mov dword [ebp + 0x6c], 1
mov edx, dword [esp + 0x2a8]
push edx
jmp 0x523227
push 0x4f4864
mov ecx, esi
call 0x55bdf6
mov eax, dword [esp + 0x10]
push 0x4f496c
push eax
mov esi, 1
call 0x539964
add esp, 8
test eax, eax
jne 0x523111
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x4f3f3c
call 0x55bd27
lea ecx, [esp + 0x20]
push 0x3d
lea edx, [esp + 0x1c]
push ecx
lea eax, [esp + 0x144]
push edx
push eax
mov ecx, ebp
call fcn.00526130
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x2a0], 0x10
call 0x55bda6
lea ecx, [esp + 0x138]
mov byte [esp + 0x29c], 5
call 0x55bcb9
push ebx
lea ecx, [esp + 0x1c]
push esi
push ecx
mov ecx, ebp
call fcn.00525490
mov esi, eax
lea edx, [esp + 0x20]
push esi
push edx
mov ecx, ebp
call fcn.00523d20
jmp 0x52322e
push 0x4f4858
mov ecx, esi
call 0x55bdf6
mov eax, dword [esp + 0x10]
push 0x4f4978
push eax
mov esi, 1
call 0x539964
add esp, 8
test eax, eax
jne 0x5231ac
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x4f3f3c
call 0x55bd27
lea ecx, [esp + 0x20]
push 0x3d
lea edx, [esp + 0x1c]
push ecx
lea eax, [esp + 0x170]
push edx
push eax
mov ecx, ebp
call fcn.00526130
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x2a0], 0xf
call 0x55bda6
lea ecx, [esp + 0x164]
mov byte [esp + 0x29c], 5
call 0x55bcb9
push ebx
lea ecx, [esp + 0x1c]
push esi
push ecx
mov ecx, ebp
call fcn.00525490
mov esi, eax
mov edx, dword [esp + 0x2b4]
lea eax, [esp + 0x20]
push edx
push esi
push eax
mov ecx, ebp
call fcn.00523ba0
jmp 0x52322e
push 0x4f484c
mov ecx, esi
call 0x55bdf6
push edi
mov ecx, ebp
call fcn.005235f0
test eax, eax
je 0x52322e
cmp edi, ebx
jne 0x5231ec
mov eax, dword [ebp + 0x38]
xor ecx, ecx
cmp eax, ebx
sete cl
mov dword [ebp + 0x38], ecx
mov edx, dword [esp + 0x2a8]
push edx
jmp 0x523227
push 0x4f4844
mov ecx, esi
call 0x55bdf6
push edi
mov ecx, ebp
call fcn.005235f0
test eax, eax
je 0x52322e
cmp edi, ebx
jne 0x52321f
mov ecx, dword [ebp + 0x30]
xor eax, eax
cmp ecx, ebx
sete al
mov dword [ebp + 0x30], eax
mov ecx, dword [esp + 0x2a8]
push ecx
mov ecx, ebp
call fcn.00523900
mov edx, dword [esp + 0x2ac]
mov ecx, dword [esp + 0x40]
mov eax, dword [edx]
mov eax, dword [eax - 8]
cmp ecx, eax
jl 0x520d59
mov ecx, dword [esp + 0x2b4]
lea edx, [esp + 0x20]
push ecx
push 1
push edx
mov ecx, ebp
call fcn.00523ba0
mov eax, dword [esp + 0x24]
mov ecx, dword [ebp + 0x144]
mov edx, dword [esp + 0x144]
sub eax, ecx
mov dword [ebp + 0x130], eax
mov eax, dword [ebp + 0x134]
cmp edx, eax
mov dword [esp + 0x40], edx
jge 0x5232eb
lea ebx, [ebp + 0xa4]
mov eax, dword [ebp + 0x20c]
lea ecx, [edx + edx*4]
mov edi, ebx
lea esi, [eax + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0xb0]
test eax, eax
je 0x5232dc
mov edx, dword [ebp + 0x12c]
push 0x64
push edx
push eax
lea ebx, [ebp + 0xa4]
call dword [fcn.004b039c]
mov esi, dword [ebx]
mov ecx, dword [ebp + 0x12c]
add esi, eax
mov eax, esi
mov dword [ebx], esi
cmp ecx, eax
jle 0x5232d2
mov eax, ecx
mov edx, dword [esp + 0x40]
mov dword [ebp + 0x12c], eax
mov eax, dword [ebp + 0x134]
inc edx
cmp edx, eax
mov dword [esp + 0x40], edx
jl 0x523289
mov esi, dword [esp + 0x2a4]
mov eax, dword [ebp + 0x12c]
mov dword [esi], eax
mov ecx, dword [ebp + 0x130]
mov dword [esi + 4], ecx
lea ecx, [esp + 0x230]
mov byte [esp + 0x29c], 0x2c
call 0x55bcb9
lea ecx, [esp + 0x1f4]
mov byte [esp + 0x29c], 0x2b
call 0x55bcb9
lea ecx, [esp + 0x1d0]
mov byte [esp + 0x29c], 0x2a
call 0x55bcb9
lea ecx, [esp + 0x1b4]
mov byte [esp + 0x29c], 4
call 0x55bcb9
lea ecx, [esp + 0x18]
mov byte [esp + 0x29c], 3
call 0x55bcb9
lea ecx, [esp + 0x10]
mov byte [esp + 0x29c], 2
call 0x55bcb9
lea ecx, [esp + 0x14]
mov byte [esp + 0x29c], 1
call 0x55bcb9
lea ecx, [esp + 0x28]
mov dword [esp + 0x29c], 0xffffffff
call 0x55bcb9
mov eax, esi
mov ecx, dword [esp + 0x294]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x290
ret 0x14