Function at 0x50a51c
Capabilities:
Compress data via winapi

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff64
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x50d26b
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], eax
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 5
jge 0x50a569
inc dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
add eax, 0x68
mov dword [ebp - 0x30], eax
jmp 0x50a569
imul eax, dword [0x5359f8], 0x94
mov dword [0x535874], eax
mov eax, dword [0x535894]
call fcn.004071f4
mov dword [0x535894], eax
mov eax, dword [0x5358dc]
mov dword [0x53589c], eax
mov eax, dword [0x535894]
cmp eax, dword [0x53589c]
jle 0x50a5ab
mov eax, dword [0x5358d4]
add eax, 0x2b
mov dword [0x5358ec], eax
mov eax, dword [0x53587c]
sub eax, dword [0x535a30]
mov dword [0x53596c], eax
mov eax, dword [0x5359d0]
mov dword [0x535984], eax
mov eax, dword [0x535894]
cmp eax, dword [0x535984]
jge 0x50a61f
mov eax, dword [0x5359bc]
sub eax, dword [0x5358cc]
cmp eax, 0x62
jge 0x50a629
mov eax, 0x2e
sub eax, dword [ebp - 0x34]
cmp eax, 0x57
jge 0x50a601
mov eax, dword [0x5359bc]
sub eax, dword [0x5359b4]
mov dword [0x53585c], eax
jmp 0x50a629
push 0x535a38
push 0x535964
lea ecx, [ebp - 0x24]
mov edx, 0x535a00
mov eax, 0x535904
call fcn.004f9000
jmp 0x50a629
mov eax, dword [0x535a48]
mov dword [0x53594c], eax
mov byte [ebp - 9], 0
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx]
cmp edx, 0
jne 0x50a7b4
cmp eax, 0
jne 0x50a7b4
mov eax, dword [ebp - 0x20]
shl eax, 4
mov dword [ebp - 0x18], eax
mov eax, dword [0x5358bc]
call fcn.004071f4
mov dword [0x5358bc], eax
imul eax, dword [ebp - 0x34], 0x6f
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x28]
add eax, 0x89
mov dword [ebp - 0x2c], eax
mov eax, dword [0x5358ac]
add eax, 0x7a
mov dword [0x535974], eax
mov eax, dword [0x53589c]
add eax, dword [0x5359f8]
mov dword [0x5359d8], eax
mov byte [ebp - 9], 1
lea eax, [ebp - 0x10]
mov edx, 0x50d288
call fcn.0040a01c
mov eax, dword [ebp - 0x34]
sub eax, 0xe
mov dword [ebp - 0x18], eax
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xf
jge 0x50a6ef
inc dword [ebp - 0x28]
mov eax, dword [0x535a38]
mov dword [0x5358f4], eax
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x28]
cmp eax, 0xad
jge 0x50a6d9
fild dword [ebp - 0x2c]
call fcn.00407638
mov dword [ebp - 0x24], eax
jmp 0x50a6e9
mov eax, 0xa1
sub eax, dword [0x5359c4]
mov dword [0x5359e0], eax
cmp dword [ebp - 0x28], 0xf
jl 0x50a6b2
mov eax, dword [0x5359ac]
imul dword [0x535a08]
mov dword [0x53589c], eax
mov eax, dword [0x5359f8]
add eax, 4
mov dword [ebp - 0x9c], eax
fild dword [ebp - 0x9c]
call fcn.00407638
mov dword [0x5358dc], eax
mov eax, dword [0x5359e8]
add eax, 0xcd
mov dword [0x535944], eax
jmp 0x50d255
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
mov eax, dword [0x53592c]
sub eax, dword [0x5359e0]
cmp eax, dword [0x53592c]
jge 0x50a7da
imul eax, dword [ebp - 0x34], 0xf3
mov dword [ebp - 0x24], eax
imul eax, dword [ebp - 0x1c], 0xa3
mov dword [ebp - 0x2c], eax
mov eax, dword [0x5359b4]
sub eax, dword [0x535a18]
mov edx, dword [0x53594c]
sub edx, dword [0x535a18]
cmp eax, edx
jle 0x50a824
mov eax, dword [0x5358ac]
add eax, dword [0x5359d8]
cmp eax, dword [0x5359d8]
jne 0x50a845
fild dword [0x5358ec]
call fcn.00407638
mov dword [0x535a48], eax
jmp 0x50a845
lea eax, [ebp - 0x34]
push eax
push 0x5359b4
push 0x53592c
push 0x5358d4
lea ecx, [ebp - 0x2c]
lea edx, [ebp - 0x30]
lea eax, [ebp - 0x28]
call fcn.00502e94
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0x10]
call fcn.0040a01c
fild dword [0x535a40]
call fcn.00407638
mov dword [0x53590c], eax
xor eax, eax
push ebp
push 0x50d128
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x2c]
jge 0x50a8c1
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xb
jge 0x50a8b6
inc dword [ebp - 0x30]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x68], eax
cmp dword [ebp - 0x68], 0
je 0x50a89e
mov eax, dword [ebp - 0x68]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x68], eax
cmp dword [ebp - 0x68], 0x1b
jne 0x50a8b6
mov eax, dword [0x5358fc]
mov dword [0x53587c], eax
jmp 0x50a8b6
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0x10]
call fcn.0040a01c
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0xd
jge 0x50a8f5
inc dword [ebp - 0x20]
fild dword [ebp - 0x28]
call fcn.00407638
mov dword [ebp - 0x24], eax
mov eax, dword [0x535a50]
mov dword [0x53594c], eax
fild dword [ebp - 0x2c]
call fcn.00407638
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x20], 0xd
jl 0x50a8cc
mov eax, dword [0x53597c]
add eax, 0x6c
mov dword [0x535a40], eax
mov eax, dword [0x5359d8]
add eax, 0x6a
mov dword [0x535884], eax
mov eax, dword [ebp - 0x2c]
push eax
mov eax, dword [0x535944]
push eax
mov eax, dword [ebp - 0x28]
push eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [0x5359ac]
mov eax, dword [ebp - 0x2c]
call fcn.005031c8
mov dword [0x5359e8], eax
lea eax, [ebp - 0x10]
mov edx, 0x50d2cc
call fcn.0040a01c
push 0xf0000000
push 1
push 0
push 0
lea eax, [ebp - 0x40]
push eax
call dword [0x535910]
test eax, eax
je 0x50d0e2
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 9
jge 0x50a9b6
inc dword [ebp - 0x30]
mov eax, dword [0x535a30]
mov dword [0x535a48], eax
mov eax, dword [0x53585c]
call fcn.004071f4
mov dword [0x53585c], eax
mov eax, dword [0x53585c]
cmp eax, dword [0x535a48]
jle 0x50a9a6
mov edx, dword [0x5358ac]
mov eax, dword [0x53586c]
call fcn.004f8804
mov dword [ebp - 0x18], eax
jmp 0x50a9b0
mov eax, dword [0x535864]
mov dword [0x5358e4], eax
cmp dword [ebp - 0x30], 9
jl 0x50a968
mov eax, dword [0x5358c4]
push eax
mov eax, dword [0x5359e0]
push eax
mov eax, dword [0x5358c4]
push eax
mov eax, dword [0x5358bc]
push eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [0x5359c4]
mov eax, dword [ebp - 0x30]
call fcn.00502a10
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 8
jge 0x50aa46
inc dword [ebp - 0x28]
mov eax, dword [0x535a50]
mov dword [0x5359bc], eax
mov eax, dword [0x5359bc]
cmp eax, dword [0x5358e4]
jge 0x50aa2d
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xe
jge 0x50aa36
inc dword [ebp - 0x1c]
lea eax, [ebp - 0x10]
push eax
xor ecx, ecx
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.0040abd8
cmp dword [ebp - 0x1c], 0xe
jl 0x50aa0f
jmp 0x50aa36
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x34], eax
mov eax, dword [0x535a28]
mov dword [0x535934], eax
cmp dword [ebp - 0x28], 8
jl 0x50a9ea
imul eax, dword [0x5358f4], 0x4e
mov dword [0x5359d0], eax
mov eax, dword [0x5358ec]
add eax, dword [0x535a08]
mov dword [0x535a38], eax
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x34]
jne 0x50aa7c
mov eax, dword [0x53586c]
call fcn.004071f4
mov dword [0x53586c], eax
xor eax, eax
push ebp
push 0x50cfaf
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x2c]
add eax, 0x13
mov dword [ebp - 0x28], eax
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0xb
jge 0x50ab42
inc dword [ebp - 0x20]
mov eax, dword [0x53596c]
mov dword [0x5359e8], eax
mov eax, dword [0x535904]
mov dword [0x535a00], eax
mov eax, dword [0x5359e8]
cmp eax, dword [0x535a00]
jge 0x50ab0b
mov eax, dword [0x535a40]
call fcn.004071f4
mov dword [0x535a40], eax
mov eax, dword [0x5359e8]
cmp eax, dword [0x535a40]
jle 0x50ab0b
mov eax, dword [ebp - 0x30]
push eax
mov eax, dword [0x53586c]
push eax
mov eax, dword [0x53590c]
push eax
mov eax, dword [0x535934]
push eax
mov ecx, dword [ebp - 0x20]
mov edx, dword [0x5359e8]
mov eax, dword [0x53594c]
call fcn.00507164
xor eax, eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 7
jge 0x50ab2e
inc dword [ebp - 0x34]
mov eax, dword [0x53588c]
sub eax, 0x9f
mov dword [0x5359e8], eax
cmp dword [ebp - 0x34], 7
jl 0x50ab16
mov eax, dword [0x535884]
mov dword [0x535a50], eax
cmp dword [ebp - 0x20], 0xb
jl 0x50aaa2
mov eax, dword [0x53596c]
add eax, dword [0x535934]
mov dword [0x5358cc], eax
fild dword [0x535964]
call fcn.00407638
mov dword [0x535934], eax
lea eax, [ebp - 0x10]
mov edx, 0x50d2e8
call fcn.0040a01c
mov eax, dword [0x53585c]
sub eax, dword [0x535974]
mov dword [0x5359d0], eax
lea eax, [ebp - 0x44]
push eax
push 0
push 0
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp - 0x40]
push eax
call dword [0x535928]
test eax, eax
je 0x50cd0c
mov eax, dword [ebp - 0x28]
sub eax, 0xf0
mov dword [ebp - 0x20], eax
mov eax, dword [0x53592c]
call fcn.004071f4
mov dword [0x53592c], eax
lea eax, [ebp - 0x10]
push eax
xor ecx, ecx
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.0040abd8
mov eax, dword [ebp - 0x2c]
imul dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x30]
mov dword [ebp - 0x1c], eax
add dword [0x535a18], 0xf0
mov eax, dword [ebp - 0x20]
imul dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
mov eax, dword [0x53598c]
add eax, 0x60
cmp eax, dword [0x535a50]
jge 0x50ac4a
mov eax, 0x93
sub eax, dword [0x5359f8]
cmp eax, 0x61
jge 0x50ac3f
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xc
jge 0x50ac4a
inc dword [ebp - 0x30]
mov eax, dword [0x535874]
call fcn.004071f4
mov dword [0x535874], eax
cmp dword [ebp - 0x30], 0xc
jl 0x50ac25
jmp 0x50ac4a
mov eax, dword [ebp - 0x34]
add eax, 0xf3
mov dword [ebp - 0x1c], eax
mov eax, dword [0x5358ac]
lea eax, [eax + eax*2]
lea eax, [eax + eax*8]
mov dword [0x5359bc], eax
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [0x535a18]
push eax
mov eax, dword [0x5359e0]
push eax
mov ecx, dword [0x5358bc]
mov edx, dword [0x5359e8]
mov eax, dword [0x535864]
call fcn.005031c8
mov dword [0x5359d8], eax
imul eax, dword [0x5359ac], 0xb1
mov dword [0x535a50], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x6c], eax
cmp dword [ebp - 0x6c], 0
je 0x50acab
mov eax, dword [ebp - 0x6c]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x6c], eax
cmp dword [ebp - 0x6c], 0xdf
jle 0x50acb9
call fcn.0050a3fc
xor eax, eax
push ebp
push 0x50cd02
push dword fs:[eax]
mov dword fs:[eax], esp
push 0xf0000000
push 0x18
push 0
push 0
lea eax, [ebp - 0x38]
push eax
call dword [0x535910]
test eax, eax
je 0x50cb39
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xe
jge 0x50ad0b
inc dword [ebp - 0x30]
lea eax, [ebp - 0x10]
push eax
xor ecx, ecx
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.0040abd8
cmp dword [ebp - 0x30], 0xe
jl 0x50acef
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
mov eax, dword [0x5358c4]
add eax, dword [0x535894]
cmp eax, dword [0x535894]
jle 0x50ad33
imul eax, dword [ebp - 0x14], 0xc8
mov dword [ebp - 0x24], eax
jmp 0x50ad54
mov eax, dword [0x5358dc]
mov dword [0x5359c4], eax
mov eax, dword [0x535884]
sub eax, 0x6a
mov dword [0x535a40], eax
mov eax, dword [0x535974]
mov dword [0x53586c], eax
mov eax, dword [0x5358bc]
add eax, 4
mov dword [ebp - 0x9c], eax
fild dword [ebp - 0x9c]
call fcn.00407638
mov dword [0x5358d4], eax
mov eax, dword [0x535a18]
add eax, dword [0x535894]
mov dword [0x53595c], eax
xor eax, eax
mov dword [ebp - 0x34], eax
mov eax, dword [0x5359e8]
mov dword [0x53586c], eax
jmp 0x50ad9c
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x2c]
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x28]
call fcn.0040762c
mov dword [ebp - 0x1c], eax
mov eax, dword [0x5358bc]
sub eax, 0xa1
mov dword [0x53594c], eax
fild dword [0x53586c]
call fcn.00407638
mov dword [0x5359d0], eax
mov eax, dword [0x535864]
imul dword [0x535a48]
mov dword [0x535a38], eax
xor eax, eax
push ebp
push 0x50caeb
push dword fs:[eax]
mov dword fs:[eax], esp
fild dword [ebp - 0x30]
call fcn.0040762c
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 0x24], eax
fild dword [ebp - 0x18]
call fcn.00407638
mov dword [ebp - 0x28], eax
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 2
jne 0x50adfd
mov eax, dword [0x5359d0]
add eax, dword [0x535964]
mov dword [0x535a30], eax
mov eax, dword [0x535964]
add eax, 0xf7
mov dword [ebp - 0x9c], eax
fild dword [ebp - 0x9c]
call fcn.0040762c
mov dword [0x53588c], eax
mov eax, dword [0x53595c]
sub eax, 0x5b
mov dword [0x5358dc], eax
fild dword [0x53594c]
call fcn.0040762c
mov dword [0x535944], eax
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx]
sub eax, 0x80
sbb edx, 0
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edx
push dword [ebp - 0x74]
push dword [ebp - 0x78]
mov eax, dword [ebp - 8]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x28]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
xor eax, eax
mov dword [ebp - 0x34], eax
mov eax, dword [0x53597c]
mov dword [0x535864], eax
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0x10]
call fcn.0040a01c
call fcn.0050a3fc
mov dword [0x535a28], eax
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x1c]
jle 0x50aec3
fild dword [ebp - 0x2c]
call fcn.0040762c
mov dword [ebp - 0x20], eax
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 3
jne 0x50ae8e
mov eax, dword [ebp - 0x1c]
add eax, 0xdf
mov dword [ebp - 0x9c], eax
fild dword [ebp - 0x9c]
call fcn.0040762c
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x2c]
jge 0x50af1a
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 3
jge 0x50af39
inc dword [ebp - 0x30]
mov eax, dword [0x535874]
call fcn.004071f4
mov dword [0x535874], eax
jmp 0x50af39
mov eax, dword [0x53592c]
sub eax, 0xab
mov dword [0x53595c], eax
fild dword [0x53590c]
call fcn.0040762c
mov dword [0x5359c4], eax
lea eax, [ebp - 0x10]
push eax
xor ecx, ecx
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.0040abd8
mov eax, dword [0x53595c]
imul dword [0x53586c]
mov dword [0x53587c], eax
mov eax, dword [0x5358ec]
sub eax, 0x3c
mov dword [0x5358d4], eax
mov eax, pe_nt_image_headers32
call fcn.00406e0c
mov dword [ebp - 0x4c], eax
xor eax, eax
push ebp
push 0x50c919
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x10]
mov edx, 0x50d318
call fcn.0040a01c
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 0x10
jne 0x50af89
mov eax, dword [ebp - 0x20]
add eax, 4
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x30]
add eax, 0x82
mov dword [ebp - 0x9c], eax
fild dword [ebp - 0x9c]
call fcn.0040762c
mov dword [ebp - 0x1c], eax
mov eax, dword [0x5358ac]
add eax, 0xfc
mov dword [0x53597c], eax
lea eax, [ebp - 0x10]
push eax
xor ecx, ecx
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.0040abd8
mov eax, dword [0x5359ac]
add eax, 0x92
mov dword [0x535a28], eax
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 7
jge 0x50b01c
inc dword [ebp - 0x30]
lea eax, [ebp - 0x10]
push eax
xor ecx, ecx
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.0040abd8
cmp dword [ebp - 0x30], 7
jl 0x50b000
xor eax, eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x34]
sub eax, 0xc2
mov dword [ebp - 0x20], eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xa
jne 0x50b021
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
mov eax, dword [0x5358b4]
mov dword [0x5359ac], eax
mov eax, dword [0x5359b4]
call fcn.004071f4
mov dword [0x5359b4], eax
mov eax, dword [0x5359b4]
cmp eax, dword [0x5359ac]
jge 0x50b070
mov eax, dword [0x535a08]
mov dword [0x535a30], eax
jmp 0x50b08e
mov eax, dword [0x53589c]
sub eax, 0x99
mov dword [0x5358b4], eax
mov eax, dword [0x5358dc]
call fcn.004071f4
mov dword [0x5358dc], eax
mov eax, dword [0x535a40]
imul dword [0x53590c]
mov dword [0x535984], eax
mov edx, dword [ebp - 0x4c]
mov ecx, 0x80
mov eax, dword [ebp - 8]
call fcn.004a8570
mov eax, dword [0x535a50]
push eax
mov eax, dword [0x53595c]
push eax
mov eax, dword [0x5358cc]
push eax
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [0x535a28]
mov edx, dword [ebp - 0x30]
mov eax, dword [0x535a30]
call fcn.00507164
mov dword [ebp - 0x28], eax
mov eax, dword [0x535954]
mov edx, 0x50d340
call fcn.0040aba0
jne 0x50b1ce
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x34]
mov dword [ebp - 0x24], eax
mov eax, dword [0x5359a4]
mov edx, dword [0x5359c8]
call fcn.0040aba0
jne 0x50b1b9
mov eax, dword [0x535a50]
mov dword [0x5359c4], eax
mov eax, dword [0x5359e8]
call fcn.004071f4
mov dword [0x5359e8], eax
mov eax, dword [0x5359c4]
cmp eax, dword [0x5359e8]
jge 0x50b154
mov eax, dword [0x53596c]
push eax
mov eax, dword [0x535a30]
push eax
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x2c]
mov eax, dword [0x53596c]
call fcn.00503e6c
mov eax, dword [0x535934]
call fcn.004071f4
mov dword [0x535934], eax
mov eax, dword [0x5359c4]
cmp eax, dword [0x535934]
jge 0x50b17c
mov eax, dword [0x535a18]
mov dword [0x5359ac], eax
jmp 0x50b1b9
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xd
jge 0x50b1b9
inc dword [ebp - 0x30]
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [0x535a38]
push eax
mov eax, dword [ebp - 0x30]
push eax
mov eax, dword [0x5358bc]
push eax
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x2c]
mov eax, dword [0x5358ec]
call fcn.004f8e58
mov dword [0x535a50], eax
cmp dword [ebp - 0x30], 0xd
jl 0x50b187
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x14], eax
mov eax, dword [0x53596c]
mov dword [0x535a00], eax
jmp 0x50b1f9
mov eax, dword [0x535964]
mov dword [0x535864], eax
xor eax, eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0xc
jge 0x50b1f9
inc dword [ebp - 0x2c]
mov eax, dword [0x5359f8]
add eax, 4
mov dword [0x53594c], eax
cmp dword [ebp - 0x2c], 0xc
jl 0x50b1e3
fild dword [0x5359e0]
call fcn.00407638
mov dword [0x535a28], eax
lea eax, [ebp - 0x10]
push eax
xor ecx, ecx
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.0040abd8
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [0x535a18]
push eax
mov eax, dword [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x28]
push eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
call fcn.00507164
mov dword [0x53590c], eax
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx]
sub eax, 0x84
sbb edx, 0
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], edx
push dword [ebp - 0x84]
push dword [ebp - 0x88]
mov eax, dword [ebp - 8]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x28]
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], edx
lea edx, [ebp - 0x64]
mov ecx, 4
mov eax, dword [ebp - 8]
call fcn.004a8570
mov eax, dword [0x5359f8]
mov dword [0x53585c], eax
fild dword [ebp - 0x24]
call fcn.00407638
mov dword [ebp - 0x14], eax
imul eax, dword [ebp - 0x34], 0xfa
mov dword [ebp - 0x18], eax
mov eax, dword [0x53597c]
sub eax, dword [0x5358cc]
mov dword [0x535904], eax
mov eax, dword [0x53596c]
add eax, 0x8a
mov dword [0x535974], eax
mov eax, dword [0x535964]
sub eax, 0xef
mov dword [0x5359e0], eax
mov dword [ebp - 0x48], 0x80
mov eax, dword [ebp - 0x30]
push eax
mov eax, dword [0x535a38]
push eax
mov eax, dword [ebp - 0x28]
push eax
mov ecx, dword [ebp - 0x2c]
mov edx, dword [0x53592c]
mov eax, dword [ebp - 0x2c]
call fcn.004fafb4
mov eax, dword [ebp - 0x28]
imul dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jne 0x50b331
mov eax, dword [ebp - 0x2c]
add eax, 0xcb
mov dword [ebp - 0x24], eax
mov eax, dword [0x535884]
add eax, 0xb1
mov dword [0x5359e0], eax
jmp 0x50b33b
mov eax, dword [0x535a30]
mov dword [0x53585c], eax
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 1
jge 0x50b368
inc dword [ebp - 0x14]
mov eax, dword [0x53586c]
mov dword [0x5358ec], eax
mov eax, dword [0x535a08]
sub eax, 0xa9
mov dword [0x53596c], eax
cmp dword [ebp - 0x14], 1
jl 0x50b346
mov eax, 0x40
sub eax, dword [0x5358dc]
mov dword [0x535a08], eax
call fcn.0050a3fc
mov dword [0x535894], eax
mov eax, dword [ebp - 0x30]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x2c]
jne 0x50b3e8
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xf
jge 0x50b3c0
inc dword [ebp - 0x1c]
lea eax, [ebp - 0x10]
push eax
xor ecx, ecx
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.0040abd8
cmp dword [ebp - 0x1c], 0xf
jl 0x50b3a4
mov eax, dword [ebp - 0x20]
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x18], eax
mov eax, dword [0x5358cc]
add eax, 0xdd
mov dword [0x535934], eax
mov eax, dword [0x53587c]
imul dword [0x535944]
mov dword [0x5359b4], eax
mov eax, dword [0x535964]
add eax, dword [0x53596c]
mov dword [0x535a48], eax
mov eax, dword [0x5358f4]
add eax, 8
mov dword [0x5358ac], eax
lea eax, [ebp - 0x24]
push eax
push 0x5359e8
lea ecx, [ebp - 0x24]
mov edx, 0x5358fc
mov eax, 0x535a50
call fcn.004fa854
mov dword [0x5358f4], eax
mov eax, dword [0x53598c]
sub eax, 5
mov dword [0x535944], eax
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x4c]
push eax
push 0
push 0xffffffffffffffff
push 0
mov eax, dword [ebp - 0x44]
push eax
call dword [0x535930]
test eax, eax
je 0x50c7da
lea eax, [ebp - 0x3c]
push eax
push 0
push 0
mov eax, dword [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x4c]
push eax
mov eax, dword [ebp - 0x38]
push eax
call dword [0x535928]
test eax, eax
je 0x50c78f
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x2c]
sub eax, 0x7f
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x30]
add eax, 0x15
mov dword [ebp - 0x9c], eax
fild dword [ebp - 0x9c]
call fcn.0040762c
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x20]
cmp eax, edx
jle 0x50b4c1
imul eax, dword [0x535a48], 0xed
mov dword [0x5359f8], eax
jmp 0x50b4cb
mov eax, dword [0x5359e0]
mov dword [0x535864], eax
mov eax, dword [0x5358c4]
add eax, 4
mov dword [ebp - 0x9c], eax
fild dword [ebp - 0x9c]
call fcn.00407638
mov dword [0x5358dc], eax
mov eax, dword [0x5358b4]
add eax, 0xb3
mov dword [0x535944], eax
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 4
jge 0x50b55f
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
xor eax, eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 3
jge 0x50b559
inc dword [ebp - 0x2c]
xor eax, eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x34]
push eax
mov eax, dword [0x535a40]
push eax
mov eax, dword [0x53586c]
push eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [0x535904]
mov eax, dword [0x535904]
call fcn.00504b60
mov dword [0x5358b4], eax
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 7
jne 0x50b522
cmp dword [ebp - 0x2c], 3
jl 0x50b51a
cmp dword [ebp - 0x1c], 4
jl 0x50b503
mov eax, dword [0x5358c4]
add eax, 4
mov dword [ebp - 0x9c], eax
fild dword [ebp - 0x9c]
call fcn.00407638
mov dword [0x5359e0], eax
mov ecx, 1
mov edx, dword [ebp - 0x10]
mov eax, 0x50d360
call fcn.0040ade8
cmp eax, 0x21
jge 0x50b5bd
push 0x5359c4
lea eax, [ebp - 0x2c]
push eax
push 0x53589c
mov ecx, 0x53595c
mov edx, 0x535a40
mov eax, 0x5358ac
call fcn.004ff010
mov dword [0x535974], eax
jmp 0x50b5cc
imul eax, dword [0x53594c], 0xbc
mov dword [0x53593c], eax
imul eax, dword [0x5359e8], 0xb9
mov dword [0x5359e8], eax
lea eax, [ebp - 0x10]
mov edx, 0x50d3a4
call fcn.0040a01c
xor eax, eax
push ebp
push 0x50c785
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x64]
add eax, 0x100000
call fcn.00406e0c
mov dword [ebp - 0x50], eax
mov eax, dword [0x5359ac]
call fcn.004071f4
mov dword [0x5359ac], eax
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x10]
mov edx, 0x50d418
call fcn.0040a01c
imul eax, dword [ebp - 0x24], 0x7a
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0x10]
call fcn.0040a01c
mov eax, dword [0x53593c]
mov dword [0x535894], eax
xor eax, eax
push ebp
push 0x50c6a9
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x53596c]
call fcn.004071f4
mov dword [0x53596c], eax
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [0x53587c]
mov edx, dword [ebp - 0x34]
mov eax, dword [0x535864]
call fcn.004f9618
mov dword [0x535904], eax
mov eax, dword [ebp - 0x14]
add eax, 0x5e
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x2c]
mov eax, dword [0x5358d4]
call fcn.00504994
mov eax, dword [0x535a18]
mov dword [0x535a50], eax
lea eax, [ebp - 0x10]
mov edx, 0x50d444
call fcn.0040a01c
mov dl, 1
mov eax, dword [0x48c29c]
call fcn.00407d6c
mov dword [ebp - 0x54], eax
xor eax, eax
push ebp
push 0x50c4ff
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x535a48]
mov dword [0x5359bc], eax
mov eax, dword [0x535934]
mov dword [0x5359e8], eax
mov eax, dword [0x5359bc]
cmp eax, dword [0x5359e8]
jge 0x50b709
lea eax, [ebp - 0x10]
push eax
xor ecx, ecx
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.0040abd8
mov eax, 0xc9
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
mov eax, dword [0x5359e0]
cmp eax, dword [0x5358a4]
jle 0x50b747
xor eax, eax
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x14]
lea edx, [ebp - 0x2c]
mov eax, 0x535904
call fcn.004fa854
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 6
jne 0x50b726
mov eax, dword [0x5359d0]
mov dword [0x535974], eax
mov eax, dword [0x5359bc]
cmp eax, dword [0x535974]
jge 0x50b782
mov eax, dword [0x535a10]
mov edx, 0x50d47c
call fcn.0040aba0
jne 0x50b782
lea eax, [ebp - 0x10]
push eax
xor ecx, ecx
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.0040abd8
mov ecx, 1
mov edx, dword [0x535954]
mov eax, 0x50d4a0
call fcn.0040ade8
cmp eax, 0xde
jge 0x50b7ae
mov eax, dword [0x535a40]
imul dword [0x53592c]
mov dword [0x5359ac], eax
mov eax, dword [0x5358c4]
add eax, 4
mov dword [0x535a48], eax
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx]
sub eax, 0x84
sbb edx, 0
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x24]
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xa
jge 0x50b7ff
inc dword [ebp - 0x30]
mov eax, dword [0x535884]
call fcn.004071f4
mov dword [0x535884], eax
cmp dword [ebp - 0x30], 0xa
jl 0x50b7e7
mov eax, dword [ebp - 0x24]
add eax, 4
mov dword [ebp - 0x1c], eax
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 3
jge 0x50b826
inc dword [ebp - 0x28]
mov eax, dword [0x53586c]
mov dword [0x5359ac], eax
cmp dword [ebp - 0x28], 3
jl 0x50b813
mov eax, dword [ebp - 0x18]
add eax, 0xd8
mov dword [ebp - 0x14], eax
fild dword [0x535944]
call fcn.00407638
mov dword [0x535894], eax
mov eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
push 0x535a30
lea eax, [ebp - 0x24]
push eax
push 0x535864
lea ecx, [ebp - 0x1c]
mov edx, 0x535a08
lea eax, [ebp - 0x2c]
call fcn.004eb6e8
mov eax, dword [0x5359bc]
add eax, 0xe9
mov dword [0x535a30], eax
mov eax, dword [0x535924]
mov dword [ebp - 0x94], eax
cmp dword [ebp - 0x94], 0
je 0x50b89c
mov eax, dword [ebp - 0x94]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x94], eax
cmp dword [ebp - 0x94], 0x3a
jle 0x50b8cf
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [0x5358cc]
push eax
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x30]
mov edx, dword [0x535964]
mov eax, dword [0x5359d8]
call fcn.004fafb4
mov eax, dword [ebp - 0x20]
imul dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
fild dword [0x53592c]
call fcn.0040762c
mov dword [0x5359bc], eax
mov eax, dword [0x5358c4]
imul dword [0x53588c]
mov dword [0x535a30], eax
jmp 0x50bf6a
mov eax, dword [ebp - 0x20]
add eax, 4
mov dword [ebp - 0x9c], eax
fild dword [ebp - 0x9c]
call fcn.00407638
mov dword [ebp - 0x28], eax
xor eax, eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0xa
jge 0x50b92d
inc dword [ebp - 0x2c]
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0x10]
call fcn.0040a01c
cmp dword [ebp - 0x2c], 0xa
jl 0x50b919
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x24]
mov dword [ebp - 0x1c], eax
fild dword [0x53596c]
call fcn.00407638
mov dword [0x53594c], eax
mov eax, dword [0x535874]
mov dword [0x53597c], eax
lea eax, [ebp - 0x10]
mov edx, 0x50d4c4
call fcn.0040a01c
cmp dword [ebp - 0x5c], 0
jne 0x50b96e
cmp dword [ebp - 0x60], 0x100000
jbe 0x50b9d9
jmp 0x50b970
jle 0x50b9d9
mov eax, dword [ebp - 0x64]
add eax, 0x100000
mov dword [ebp - 0x48], eax
mov eax, dword [0x53588c]
mov dword [0x53595c], eax
mov eax, dword [ebp - 0x30]
imul dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x14]
imul dword [ebp - 0x24]
mov dword [ebp - 0x2c], eax
mov eax, dword [0x53590c]
mov dword [0x535a00], eax
xor eax, eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0xe
jge 0x50b9c4
inc dword [ebp - 0x34]
mov eax, dword [0x53594c]
add eax, 0x88
mov dword [0x5358f4], eax
cmp dword [ebp - 0x34], 0xe
jl 0x50b9ac
fild dword [0x53593c]
call fcn.00407638
mov dword [0x5359d0], eax
jmp 0x50bb69
mov eax, dword [0x535a28]
mov dword [0x535904], eax
fild dword [ebp - 0x28]
call fcn.0040762c
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x14]
mov edx, eax
shl eax, 7
add eax, edx
mov dword [ebp - 0x30], eax
mov eax, dword [0x5359c4]
cmp eax, dword [0x5358ac]
jle 0x50ba44
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 1
jge 0x50ba28
inc dword [ebp - 0x20]
mov eax, dword [0x53592c]
mov dword [0x53590c], eax
jmp 0x50ba28
mov eax, dword [0x5358d4]
add eax, dword [0x5359c4]
cmp eax, dword [0x5359c4]
jne 0x50ba54
add dword [0x53586c], 4
jmp 0x50ba54
mov eax, dword [0x535a48]
imul dword [0x535a08]
mov dword [0x53597c], eax
mov eax, dword [0x535884]
add eax, 0xfd
mov dword [0x535a40], eax
mov eax, dword [0x535a30]
sub eax, dword [0x53585c]
mov dword [0x5358a4], eax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x48], eax
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 8
jge 0x50badb
inc dword [ebp - 0x30]
mov eax, dword [0x535a48]
mov dword [0x53587c], eax
fild dword [ebp - 0x24]
call fcn.0040762c
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x2c]
add eax, 0xf1
mov dword [ebp - 0x9c], eax
fild dword [ebp - 0x9c]
call fcn.0040762c
mov dword [ebp - 0x1c], eax
fild dword [0x535a28]
call fcn.00407638
mov dword [0x53598c], eax
mov eax, dword [0x5359bc]
add eax, 0x4f
mov dword [0x535a08], eax
cmp dword [ebp - 0x30], 8
jl 0x50ba84
mov eax, dword [0x535a00]
sub eax, 0xb2
mov dword [0x5358b4], eax
mov eax, dword [0x53593c]
add eax, 0xe3
mov dword [0x535934], eax
mov eax, dword [0x5358d4]
add eax, dword [0x5358e4]
mov dword [0x5359b4], eax
mov eax, dword [0x535974]
mov dword [0x5359e8], eax
mov eax, dword [0x5358c4]
mov dword [0x535a18], eax
mov eax, dword [0x5359e8]
cmp eax, dword [0x535a18]
jge 0x50bb3f
lea eax, [ebp - 0x10]
push eax
xor ecx, ecx
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.0040abd8
jmp 0x50bb5d
mov eax, dword [0x535864]
add eax, 4
mov dword [ebp - 0x9c], eax
fild dword [ebp - 0x9c]
call fcn.00407638
mov dword [0x535934], eax
imul eax, dword [0x535a48], 0x6e
mov dword [0x535a00], eax
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xe
jge 0x50bbac
inc dword [ebp - 0x28]
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 5
jge 0x50bbac
inc dword [ebp - 0x30]
mov eax, dword [0x535984]
sub eax, dword [0x5359bc]
mov dword [0x5358fc], eax
cmp dword [ebp - 0x30], 5
jl 0x50bb8b
jmp 0x50bbac
mov eax, dword [0x53596c]
add eax, dword [0x535a08]
mov dword [0x535a40], eax
mov eax, dword [0x535874]
mov dword [0x53586c], eax
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x28]
cmp eax, 0xf8
jge 0x50bbe5
mov eax, dword [0x5358a4]
add eax, dword [0x535984]
mov dword [0x5358fc], eax
jmp 0x50bbf4
mov eax, dword [0x535a48]
sub eax, 0xe9
mov dword [0x5359e8], eax
mov eax, dword [0x5358cc]
sub eax, 0xe6
mov dword [0x535884], eax
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
push edx
push eax
mov eax, dword [ebp - 0x48]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
mov eax, dword [0x535a08]
mov dword [0x5359c4], eax
mov eax, dword [0x5358ec]
mov dword [0x5359f8], eax
mov eax, dword [0x5359c4]
cmp eax, dword [0x5359f8]
jge 0x50bc53
lea eax, [ebp - 0x10]
push eax
xor ecx, ecx
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.0040abd8
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xc
jge 0x50bc90
inc dword [ebp - 0x28]
mov eax, dword [0x53587c]
mov dword [0x53597c], eax
mov eax, dword [ebp - 0x30]
sub eax, 0x73
mov dword [ebp - 0x2c], eax
mov eax, dword [0x535a18]
sub eax, 0x39
mov dword [0x535864], eax
cmp dword [ebp - 0x28], 0xc
jl 0x50bc67
imul eax, dword [0x53585c], 0x9b
mov dword [0x5358f4], eax
mov eax, dword [0x535884]
add eax, dword [0x535934]
cmp eax, dword [0x535934]
jne 0x50bcc1
mov eax, dword [0x535a40]
add eax, 4
mov dword [0x5359d0], eax
jmp 0x50bcf3
mov eax, dword [0x535a20]
mov edx, 0x50d54c
call fcn.0040aba0
jne 0x50bce3
mov eax, dword [0x5359c4]
add eax, 0xf8
mov dword [0x5358ec], eax
jmp 0x50bcf3
mov eax, dword [0x535944]
sub eax, dword [0x535884]
mov dword [0x5359d0], eax
mov eax, dword [0x535984]
mov dword [0x53587c], eax
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 8]
call fcn.004a8570
mov eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x14]
jle 0x50bd31
xor eax, eax
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0x10]
call fcn.0040a01c
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 4
jne 0x50bd1b
jmp 0x50bd50
mov eax, dword [ebp - 0x1c]
add eax, 0xaf
mov dword [ebp - 0x20], eax
mov eax, dword [0x535984]
mov dword [0x53596c], eax
mov eax, dword [0x5358d4]
mov dword [0x535984], eax
mov eax, dword [ebp - 0x28]
add eax, 0x9f
mov dword [ebp - 0x30], eax
mov eax, dword [0x5359c4]
sub eax, dword [0x5359c4]
mov dword [0x535884], eax
mov eax, dword [0x5358bc]
call fcn.004071f4
mov dword [0x5358bc], eax
mov eax, dword [0x5359b4]
sub eax, 0xd7
mov dword [0x53593c], eax
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x50]
push eax
push 0
push 0xffffffffffffffff
push 0
mov eax, dword [ebp - 0x3c]
push eax
call dword [0x535930]
test eax, eax
je 0x50be93
mov eax, dword [ebp - 0x34]
add eax, 4
mov dword [ebp - 0x9c], eax
fild dword [ebp - 0x9c]
call fcn.00407638
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x1c]
add eax, 0x84
mov dword [ebp - 0x2c], eax
mov eax, dword [0x53596c]
add eax, 4
mov dword [ebp - 0x9c], eax
fild dword [ebp - 0x9c]
call fcn.00407638
mov dword [0x53587c], eax
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 1
jge 0x50be19
inc dword [ebp - 0x20]
mov eax, dword [0x535944]
shl eax, 3
mov dword [0x53598c], eax
mov eax, dword [0x5359f8]
mov dword [0x5359d8], eax
jmp 0x50be19
mov eax, dword [0x5358d4]
mov dword [0x53586c], eax
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0x10]
call fcn.0040a01c
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x54]
call fcn.004a92fc
mov eax, dword [ebp - 0x30]
add eax, 4
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x10]
mov edx, 0x50d570
call fcn.0040a01c
fild dword [ebp - 0x18]
call fcn.0040762c
mov dword [ebp - 0x34], eax
mov eax, dword [0x535a50]
add eax, 0xf8
mov dword [0x5358b4], eax
imul eax, dword [0x5359e8], 0xc2
mov dword [0x53590c], eax
lea eax, [ebp - 0x10]
push eax
xor ecx, ecx
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.0040abd8
jmp 0x50bf2e
mov eax, dword [0x53586c]
mov dword [0x53588c], eax
mov eax, 0x8f
sub eax, dword [0x53593c]
cmp eax, 0x7d
jge 0x50bed4
mov eax, dword [ebp - 0x2c]
imul dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x28]
jle 0x50beca
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x24]
mov dword [ebp - 0x34], eax
mov eax, dword [0x53597c]
mov dword [0x535a38], eax
mov eax, dword [0x53596c]
sub eax, 0xaf
mov dword [0x5358dc], eax
mov eax, dword [0x53593c]
call fcn.004071f4
mov dword [0x53593c], eax
mov eax, 0xb4
sub eax, dword [0x53589c]
cmp eax, 0x4f
jge 0x50bf1c
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x2c]
jne 0x50bf82
mov eax, dword [0x53598c]
add eax, 4
mov dword [0x53586c], eax
jmp 0x50bf82
mov eax, dword [0x5359d8]
add eax, dword [0x535884]
mov dword [0x53596c], eax
jmp 0x50bf82
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
imul eax, dword [ebp - 0x28], 0xee
mov dword [ebp - 0x24], eax
mov eax, dword [0x535a40]
add eax, 4
mov dword [0x5359f8], eax
mov eax, dword [0x53596c]
imul dword [0x535944]
mov dword [0x53587c], eax
imul eax, dword [0x5358b4], 0xf6
mov dword [0x5358e4], eax
cmp dword [ebp - 0x5c], 0
jne 0x50bf7c
cmp dword [ebp - 0x60], 0
ja 0x50b8f4
jmp 0x50bf82
jg 0x50b8f4
xor eax, eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 2
jge 0x50bfcb
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x20]
push eax
mov eax, dword [0x5358c4]
push eax
mov eax, dword [0x535864]
push eax
mov eax, dword [0x5358ec]
push eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [0x5359b4]
mov eax, dword [ebp - 0x14]
call fcn.00502a10
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x2c]
sub eax, 0xb8
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x34], 2
jl 0x50bf8d
mov eax, dword [ebp - 0x28]
add eax, 0xaf
mov dword [ebp - 0x24], eax
mov eax, dword [0x53586c]
sub eax, dword [0x53597c]
mov dword [0x535a00], eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x2c]
push eax
mov ecx, dword [0x535a50]
mov edx, dword [ebp - 0x34]
mov eax, dword [0x535a08]
call fcn.00504b60
mov dword [0x5358cc], eax
mov eax, dword [0x53586c]
call fcn.004071f4
mov dword [0x53586c], eax
mov eax, dword [0x53594c]
mov dword [0x53588c], eax
cmp dword [ebp - 0x5c], 0
jne 0x50c3a8
cmp dword [ebp - 0x60], 0
jne 0x50c3a8
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xc
jge 0x50c058
inc dword [ebp - 0x30]
lea eax, [ebp - 0x10]
mov edx, 0x50d598
call fcn.0040a01c
cmp dword [ebp - 0x30], 0xc
jl 0x50c042
mov eax, dword [ebp - 0x18]
imul dword [ebp - 0x2c]
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x24]
call fcn.00407638
mov dword [ebp - 0x20], eax
fild dword [0x53598c]
call fcn.0040762c
mov dword [0x5359d0], eax
mov eax, dword [0x535984]
sub eax, dword [0x535944]
mov dword [0x535a38], eax
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 0x54]
mov ebx, dword [eax]
call dword [ebx + 0x24]
mov eax, dword [ebp - 8]
call fcn.004aa194
imul eax, dword [ebp - 0x30], 0x96
mov dword [ebp - 0x28], eax
mov eax, dword [0x5358ac]
mov dword [0x5359d0], eax
lea eax, [ebp - 0x10]
mov edx, 0x50d5bc
call fcn.0040a01c
xor eax, eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 5
jge 0x50c0df
inc dword [ebp - 0x34]
imul eax, dword [ebp - 0x20], 0x97
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x34], 5
jl 0x50c0cc
mov eax, dword [0x53597c]
add eax, 0xf3
mov dword [ebp - 0x9c], eax
fild dword [ebp - 0x9c]
call fcn.0040762c
mov dword [0x535974], eax
imul eax, dword [0x535904], 0xbd
mov dword [0x5359f8], eax
mov eax, dword [ebp - 0x54]
mov edx, dword [eax]
call dword [edx]
cmp edx, 0
jne 0x50c125
cmp eax, 0
jbe 0x50c1e6
jmp 0x50c12b
jle 0x50c1e6
mov eax, dword [ebp - 0x54]
mov edx, dword [eax]
call dword [edx]
push edx
push eax
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 8]
call fcn.004a944c
imul eax, dword [ebp - 0x1c], 0x4f
mov dword [ebp - 0x28], eax
mov eax, dword [0x535964]
sub eax, dword [0x53598c]
cmp eax, dword [0x5359bc]
jne 0x50c188
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xc
jge 0x50c176
inc dword [ebp - 0x30]
mov eax, dword [ebp - 0x14]
sub eax, 0x27
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x30], 0xc
jl 0x50c164
mov eax, dword [0x5359bc]
add eax, dword [0x535934]
mov dword [0x53597c], eax
jmp 0x50c1b6
imul eax, dword [0x535a38], 0xa2
mov dword [0x53593c], eax
mov eax, dword [0x53587c]
push eax
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x28]
push eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [0x535894]
mov eax, dword [ebp - 0x1c]
call fcn.00504b60
mov eax, dword [0x5359c4]
mov dword [0x535a28], eax
imul eax, dword [0x5359bc], 0x35
mov dword [0x53587c], eax
mov eax, dword [0x535944]
sub eax, dword [0x535a28]
mov dword [0x5358dc], eax
mov eax, dword [0x5359f8]
mov dword [0x53590c], eax
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 1
jge 0x50c246
inc dword [ebp - 0x30]
mov eax, dword [ebp - 0x24]
add eax, 4
mov dword [ebp - 0x9c], eax
fild dword [ebp - 0x9c]
call fcn.00407638
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x10]
mov edx, 0x50d5e8
call fcn.0040a01c
mov eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x28]
mov dword [ebp - 0x14], eax
mov eax, dword [0x535a48]
sub eax, 0x6b
mov dword [0x5359f8], eax
mov eax, dword [0x535a30]
call fcn.004071f4
mov dword [0x535a30], eax
cmp dword [ebp - 0x30], 1
jl 0x50c1f1
mov eax, dword [0x535974]
sub eax, 0
mov dword [0x5358c4], eax
fild dword [0x535904]
call fcn.00407638
mov dword [0x53593c], eax
mov eax, dword [0x535a18]
add eax, dword [0x5358e4]
mov dword [0x5359d8], eax
mov eax, dword [0x535a00]
add eax, 4
mov dword [ebp - 0x9c], eax
fild dword [ebp - 0x9c]
call fcn.00407638
mov dword [0x535a40], eax
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x24]
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x30]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x34]
add eax, 0x4c
mov dword [ebp - 0x14], eax
mov ecx, 1
mov edx, dword [ebp - 0x10]
mov eax, 0x50d614
call fcn.0040ade8
cmp eax, 0x1b
je 0x50c304
mov ecx, 1
mov edx, dword [0x535a20]
mov eax, 0x50d638
call fcn.0040ade8
cmp eax, 0x80
je 0x50c304
lea eax, [ebp - 0x18]
push eax
push 0x53595c
mov ecx, 0x535a48
mov edx, 0x5358e4
mov eax, 0x5358ec
call fcn.004fbbf8
mov dword [0x535964], eax
mov eax, dword [0x5358e4]
mov dword [0x53594c], eax
mov eax, dword [ebp - 0x2c]
add eax, 0xc4
mov dword [ebp - 0x18], eax
mov eax, dword [0x5358d4]
imul dword [0x535964]
mov dword [0x535a28], eax
mov byte [ebp - 9], 1
xor eax, eax
mov dword [ebp - 0x34], eax
mov eax, dword [0x535874]
call fcn.004071f4
mov dword [0x535874], eax
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 7
jge 0x50c362
inc dword [ebp - 0x18]
fild dword [ebp - 0x2c]
call fcn.0040762c
mov dword [ebp - 0x24], eax
jmp 0x50c362
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 0xe
jne 0x50c332
fild dword [ebp - 0x30]
call fcn.0040762c
mov dword [ebp - 0x20], eax
mov eax, dword [0x535864]
add eax, 0x33
mov dword [0x53589c], eax
fild dword [0x5359f8]
call fcn.00407638
mov dword [0x5358f4], eax
mov eax, dword [0x5358dc]
mov dword [0x535934], eax
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0x10]
call fcn.0040a01c
lea eax, [ebp - 0x10]
mov edx, 0x50d670
call fcn.0040a01c
mov eax, dword [ebp - 0x28]
imul dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
mov eax, dword [0x535a28]
mov dword [0x5358d4], eax
mov eax, dword [0x5358ec]
call fcn.004071f4
mov dword [0x5358ec], eax
mov eax, dword [0x5358ec]
cmp eax, dword [0x5358d4]
jle 0x50c401
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x20], eax
mov eax, dword [0x535a50]
add eax, 0x55
mov dword [0x5359f8], eax
mov eax, dword [0x535984]
mov dword [0x535874], eax
mov eax, dword [0x535a38]
add eax, 0x83
mov dword [0x5358fc], eax
mov eax, dword [ebp - 0x20]
push eax
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x24]
push eax
mov ecx, dword [0x5359bc]
mov edx, dword [0x53598c]
mov eax, dword [ebp - 0x28]
call fcn.004fafb4
mov dword [0x53586c], eax
mov eax, dword [0x535a18]
add eax, dword [0x535944]
mov dword [0x5359d8], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50c509
imul eax, dword [ebp - 0x30], 0x79
mov dword [ebp - 0x1c], eax
mov eax, 0x11
sub eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
mov eax, dword [0x535934]
mov dword [0x53596c], eax
lea eax, [ebp - 0x10]
mov edx, 0x50d698
call fcn.0040a01c
mov eax, dword [0x535a30]
mov dword [0x535a08], eax
imul eax, dword [0x5359c4], 0xb
mov dword [0x53587c], eax
mov eax, dword [ebp - 0x54]
call fcn.00407d9c
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 0x34]
mov dword [ebp - 0x24], eax
mov eax, dword [0x535944]
mov dword [0x5359ac], eax
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], eax
mov eax, dword [0x535a30]
push eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [0x5358f4]
mov eax, dword [0x535a28]
call fcn.004f8cf4
mov eax, dword [0x535884]
add eax, dword [0x535884]
mov dword [0x53588c], eax
mov eax, dword [0x535a30]
add eax, 0xfe
mov dword [ebp - 0x9c], eax
fild dword [ebp - 0x9c]
call fcn.0040762c
mov dword [0x5358e4], eax
ret
lea eax, [ebp - 0x10]
push eax
xor ecx, ecx
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.0040abd8
mov eax, dword [ebp - 0x28]
add eax, 0x13
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x18]
add eax, 4
mov dword [ebp - 0x30], eax
mov eax, dword [0x53593c]
sub eax, 0x7f
mov dword [0x53596c], eax
fild dword [0x5358d4]
call fcn.00407638
mov dword [0x5359e0], eax
mov eax, dword [0x53587c]
mov dword [0x5358ac], eax
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x30]
cmp eax, 0xb3
jge 0x50c7fa
mov eax, dword [ebp - 0x1c]
imul dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x10]
mov edx, 0x50d704
call fcn.0040aba0
jne 0x50c85e
fild dword [ebp - 0x2c]
call fcn.00407638
mov dword [ebp - 0x28], eax
xor eax, eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 1
jge 0x50c85e
inc dword [ebp - 0x34]
mov eax, dword [0x535a50]
call fcn.004071f4
mov dword [0x535a50], eax
mov eax, dword [0x53593c]
mov dword [0x53586c], eax
mov eax, dword [0x53586c]
cmp eax, dword [0x535a50]
jle 0x50c858
mov eax, dword [0x53597c]
add eax, dword [0x535944]
mov dword [0x5358fc], eax
cmp dword [ebp - 0x34], 1
jl 0x50c81f
imul eax, dword [0x5358b4], 0x35
mov dword [0x535a00], eax
mov eax, dword [0x5359b4]
sub eax, 0xcc
mov dword [0x53588c], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50c923
mov eax, dword [ebp - 0x4c]
call fcn.00406e28
mov eax, dword [0x535a00]
sub eax, dword [0x535934]
cmp eax, dword [0x5359bc]
jne 0x50c8bf
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xc
jge 0x50c8bf
inc dword [ebp - 0x30]
mov eax, dword [0x53596c]
mov dword [0x53586c], eax
cmp dword [ebp - 0x30], 0xc
jl 0x50c8ac
mov eax, dword [ebp - 0x28]
imul dword [ebp - 0x34]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x14]
mov edx, eax
shl eax, 7
add eax, edx
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0xd
jge 0x50c8fb
inc dword [ebp - 0x2c]
fild dword [0x535944]
call fcn.00407638
mov dword [0x5359e8], eax
jmp 0x50c8fb
mov eax, dword [0x5359e0]
imul dword [0x5358b4]
mov dword [0x53588c], eax
mov eax, dword [0x5359d8]
add eax, 4
mov dword [0x5358dc], eax
ret
mov eax, dword [ebp - 0x24]
mov edx, eax
shl eax, 3
sub eax, edx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x2c]
imul dword [ebp - 0x28]
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x30]
call fcn.00407638
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x34]
jle 0x50cb72
mov eax, dword [0x5359d0]
sub eax, dword [0x53594c]
mov dword [0x5359b4], eax
mov eax, dword [0x535964]
add eax, 0x33
mov dword [0x535a28], eax
mov eax, dword [0x5358ec]
sub eax, dword [0x5358dc]
mov dword [0x53588c], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50cd0c
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
mov eax, dword [0x535964]
add eax, dword [0x53587c]
cmp eax, dword [0x53587c]
jle 0x50cbc1
mov eax, dword [ebp - 0x18]
imul dword [ebp - 0x2c]
mov dword [ebp - 0x28], eax
imul eax, dword [ebp - 0x20], 0xb
mov dword [ebp - 0x30], eax
mov eax, dword [0x5359d8]
mov dword [0x535a48], eax
mov eax, dword [0x535a28]
shl eax, 6
lea eax, [eax + eax*2]
mov dword [0x53588c], eax
mov eax, 0x61
sub eax, dword [0x535a30]
cmp eax, 0x64
jge 0x50cbfe
mov eax, dword [0x53586c]
mov dword [0x5358d4], eax
jmp 0x50cc0a
imul eax, dword [0x53594c], 0x55
mov dword [0x53596c], eax
mov eax, dword [ebp - 0x44]
push eax
call dword [0x535920]
mov eax, dword [0x5359e8]
mov dword [0x535874], eax
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 9
jge 0x50cc6f
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
imul dword [ebp - 0x24]
mov dword [ebp - 0x1c], eax
mov ecx, 0x53590c
mov edx, 0x5358dc
mov eax, 0x5359c4
call fcn.005072ac
mov dword [0x5359f8], eax
fild dword [ebp - 0x20]
call fcn.00407638
mov dword [ebp - 0x28], eax
mov eax, dword [0x5358fc]
imul dword [0x5358dc]
mov dword [0x5359b4], eax
cmp dword [ebp - 0x14], 9
jl 0x50cc29
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
call fcn.0040aba0
jne 0x50ccab
xor eax, eax
mov dword [ebp - 0x30], eax
mov eax, dword [0x53586c]
call fcn.004071f4
mov dword [0x53586c], eax
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 5
jne 0x50cc81
mov eax, dword [0x5358e4]
imul dword [0x535934]
mov dword [0x5358c4], eax
jmp 0x50ccc0
mov eax, dword [0x5359e0]
add dword [0x53595c], eax
mov eax, dword [0x5359d8]
mov dword [0x5359c4], eax
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0x10]
call fcn.0040a01c
mov eax, dword [0x535904]
mov dword [0x535a50], eax
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x20]
push eax
mov eax, dword [0x535864]
push eax
mov eax, dword [0x53586c]
push eax
mov ecx, dword [0x5359f8]
mov edx, dword [ebp - 0x2c]
mov eax, dword [0x5359f8]
call fcn.00507164
mov dword [0x53590c], eax
ret
mov eax, dword [ebp - 0x34]
imul dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x10]
push eax
xor ecx, ecx
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.0040abd8
mov eax, dword [0x5359d0]
sub eax, dword [0x53594c]
cmp eax, 0x6f
jge 0x50cd71
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xf
jge 0x50cd65
inc dword [ebp - 0x30]
mov eax, dword [ebp - 0x10]
mov edx, 0x50d74c
call fcn.0040aba0
jne 0x50cd5f
mov eax, dword [0x53597c]
mov dword [0x53586c], eax
cmp dword [ebp - 0x30], 0xf
jl 0x50cd43
mov eax, dword [0x535974]
mov dword [0x5358bc], eax
jmp 0x50cda7
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x24]
mov dword [ebp - 0x20], eax
mov eax, dword [0x5358f4]
add eax, 4
mov dword [ebp - 0x9c], eax
fild dword [ebp - 0x9c]
call fcn.00407638
mov dword [0x53598c], eax
mov eax, dword [0x5358a4]
sub eax, 0xf6
mov dword [0x535a08], eax
mov eax, dword [0x5359f8]
add eax, 0x26
mov dword [ebp - 0x9c], eax
fild dword [ebp - 0x9c]
call fcn.0040762c
mov dword [0x53588c], eax
mov eax, dword [0x535a48]
imul dword [0x5358c4]
mov dword [0x5358cc], eax
mov eax, 0x89
sub eax, dword [0x535a40]
mov dword [0x535934], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50cfb9
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xe
jge 0x50ce58
inc dword [ebp - 0x30]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
call fcn.0040aba0
jne 0x50ce1e
mov eax, dword [0x53587c]
call fcn.004071f4
mov dword [0x53587c], eax
jmp 0x50ce27
mov eax, dword [ebp - 0x2c]
add eax, 0x78
mov dword [ebp - 0x1c], eax
mov eax, dword [0x535904]
sub eax, dword [0x53595c]
cmp eax, 0x54
jge 0x50ce42
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
jmp 0x50ce52
mov eax, dword [0x53590c]
sub eax, dword [0x5358f4]
mov dword [0x535864], eax
cmp dword [ebp - 0x30], 0xe
jl 0x50cdfd
mov eax, dword [0x535924]
mov edx, dword [0x5359a4]
call fcn.0040aba0
jne 0x50ce7b
mov eax, dword [0x5358d4]
call fcn.004071f4
mov dword [0x5358d4], eax
jmp 0x50ceb4
mov eax, dword [0x5359bc]
sub eax, 0xda
mov dword [0x53595c], eax
fild dword [0x5359b4]
call fcn.0040762c
mov dword [0x5359c4], eax
mov eax, dword [0x5359ac]
add eax, dword [0x535a38]
mov dword [0x535a30], eax
mov eax, dword [0x5358e4]
mov dword [0x535a48], eax
fild dword [0x53588c]
call fcn.00407638
mov dword [0x5358ac], eax
mov eax, dword [0x535884]
imul dword [0x535874]
mov dword [0x5358fc], eax
mov eax, dword [0x53587c]
add eax, 3
mov dword [0x53596c], eax
push 0
mov eax, dword [ebp - 0x40]
push eax
call dword [0x535918]
mov eax, dword [0x53586c]
call fcn.004071f4
mov dword [0x53586c], eax
mov eax, dword [0x5358f4]
mov dword [0x535874], eax
mov eax, dword [0x5358ac]
mov dword [0x535884], eax
mov eax, dword [0x535874]
cmp eax, dword [0x535884]
jle 0x50cf26
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x5359f8]
mov dword [0x5358ec], eax
mov eax, dword [0x535874]
cmp eax, dword [0x5358ec]
jle 0x50cf65
mov eax, dword [ebp - 0x28]
imul dword [ebp - 0x14]
mov dword [ebp - 0x2c], eax
fild dword [ebp - 0x20]
call fcn.0040762c
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x24]
jle 0x50cf83
mov eax, dword [0x535a40]
mov dword [0x5359bc], eax
jmp 0x50cf83
mov eax, dword [0x5358c4]
add eax, 4
mov dword [ebp - 0x9c], eax
fild dword [ebp - 0x9c]
call fcn.00407638
mov dword [0x53585c], eax
imul eax, dword [0x535874], 0x25
mov dword [0x5358bc], eax
mov edx, dword [0x53596c]
mov eax, dword [0x535984]
call fcn.004f8ad0
mov eax, dword [0x5358e4]
call fcn.004071f4
mov dword [0x5358e4], eax
ret
mov eax, dword [ebp - 0x20]
add eax, 0x4a
mov dword [ebp - 0x24], eax
fild dword [ebp - 0x14]
call fcn.00407638
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x34]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x10]
mov edx, 0x50d79c
call fcn.0040a01c
mov eax, dword [0x53588c]
add eax, 0xcb
mov dword [0x535a28], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x50d255
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50d272
lea eax, [ebp - 0x10]
call fcn.00409bf4
ret