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

Disassembly:
push ebp
lea ebp, [esp - 0x6c]
sub esp, 0x234
mov eax, dword [0x61f138]
xor eax, ebp
mov dword [ebp + 0x68], eax
mov eax, dword [ebp + 0x78]
push ebx
push esi
push edi
xor edi, edi
mov dword [ebp - 0x104], edx
mov edx, dword [ebp + 0x74]
mov ebx, ecx
mov dword [ebp - 0x110], edi
mov ecx, 0x4fc
mov dword [ebp - 0x11c], edi
mov dword [ebp - 0x128], edi
mov esi, dword [ebx + 0x80]
mov dword [ebp - 0x108], edi
mov dword [ebp - 0x13c], edi
mov dword [ebp - 0x144], edi
mov dword [ebp - 0x140], edi
mov edi, dword [ebp + 0x7c]
cmp edi, ecx
mov dword [ebp - 0x124], eax
cmovg edi, ecx
mov dword [ebp - 0x130], ebx
imul eax, edx, 0x190
mov dword [ebp - 0xe8], edx
mov dword [ebp - 0xf8], edi
mov dword [ebx + 0xfd0], 0
cmp eax, esi
je 0x533157
imul eax, edx, 0xc8
cmp eax, esi
je 0x533157
imul eax, edx, 0x64
cmp eax, esi
je 0x533157
imul ecx, edx, 0x32
cmp ecx, esi
je 0x533157
imul eax, edx, 0x19
cmp eax, esi
je 0x533157
lea eax, [esi + esi*2]
cmp ecx, eax
jne 0x53315b
test edi, edi
jg 0x533163
or eax, 0xffffffff
jmp 0x534fa3
mov eax, dword [ebx + 4]
add eax, ebx
mov dword [ebp - 0x12c], eax
mov eax, dword [ebx]
add eax, ebx
cmp dword [ebx + 0x5c], 0x803
mov dword [ebp - 0x10c], eax
jne 0x53318d
mov dword [ebp - 0xec], 0
jmp 0x533196
mov eax, dword [ebx + 0x64]
mov dword [ebp - 0xec], eax
push edi
mov ecx, ebx
call fcn.00533030
mov edi, eax
mov ecx, dword [ebp - 0xf8]
mov eax, esi
mov dword [ebx + 0x8c], edi
cdq
add esp, 4
idiv dword [ebp - 0xe8]
mov esi, eax
mov dword [ebp - 0x134], esi
cmp ecx, 3
jl 0x534f1e
lea eax, [esi + esi*2]
shl eax, 3
cmp edi, eax
jl 0x534f1e
cmp esi, 0x32
jge 0x5331f8
mov eax, esi
imul eax, ecx
cmp eax, 0x12c
jl 0x534f1e
cmp edi, 0x960
jl 0x534f1e
cmp dword [ebx + 0x84], 0
jne 0x533231
lea eax, [edi + esi*4]
lea ecx, [esi*8]
cdq
idiv ecx
cmp eax, dword [ebp - 0xf8]
cmovge eax, dword [ebp - 0xf8]
mov ecx, eax
mov edi, ecx
mov dword [ebp - 0xf8], ecx
imul edi, esi
shl edi, 3
mov dword [ebx + 0x8c], edi
mov eax, esi
imul eax, ecx
mov ecx, 0x32
sub ecx, esi
shl eax, 3
mov dword [ebp - 0xfc], eax
mov eax, ecx
shl eax, 4
sub eax, ecx
lea esi, [edi + eax*4]
mov eax, dword [ebx + 0x6c]
mov dword [ebp - 0x118], esi
cmp eax, 0xbb9
jne 0x533267
mov edi, 0x7f
jmp 0x533298
cmp eax, 0xbba
jne 0x533272
xor edi, edi
jmp 0x533298
mov eax, dword [ebx + 0x7c]
test eax, eax
js 0x533284
imul edi, eax, 0x147
sar edi, 8
jmp 0x533298
cmp dword [ebx + 0x5c], 0x800
mov edi, 0x30
mov eax, 0x73
cmove edi, eax
mov eax, dword [ebx + 0x68]
lea ecx, [ebx + 0x60]
mov dword [ebp - 0x100], ecx
cmp eax, 0xfffffc18
je 0x5332b8
cmp dword [ecx], 2
jne 0x5332be
lea edx, [ebx + 0x98]
jmp 0x533308
mov dword [ebp - 0x100], ecx
mov eax, dword [ecx]
lea edx, [ebx + 0x98]
cmp eax, 2
jne 0x533302
mov eax, edi
mov dword [ebp - 0xf0], 0x9c40
imul eax, edi
imul ecx, eax, 0xffffd8f0
mov eax, 0x7d00
sar ecx, 0xe
cmp dword [edx], 2
cmovne eax, dword [ebp - 0xf0]
add ecx, eax
xor eax, eax
cmp esi, ecx
mov ecx, dword [ebp - 0x100]
setg al
inc eax
mov dword [ebp - 0x100], ecx
mov dword [edx], eax
mov edx, 0x80
cmp dword [ebx + 0x5c], 0x803
je 0x5333d8
mov ecx, dword [ebx + 0x78]
cmp ecx, 0xfffffc18
jne 0x5333ad
mov ecx, dword [ebx + 0xb8]
mov eax, edi
imul eax, edi
imul eax, eax, 0x5dc0
sar eax, 0xe
add eax, 0x5dc0
cmp ecx, 0x3ea
jne 0x533353
sub eax, 0xfa0
jmp 0x53335c
test ecx, ecx
jle 0x53335c
add eax, 0xfa0
xor ecx, ecx
cmp esi, eax
setge cl
cmp dword [ebx + 0x30], 0
lea ecx, [ecx*2 + 0x3e8]
mov dword [ebx + 0xb4], ecx
je 0x533391
mov eax, edx
sub eax, edi
sar eax, 4
cmp dword [ebx + 0x28], eax
jle 0x533391
mov dword [ebx + 0xb4], 0x3e8
mov ecx, 0x3e8
cmp dword [ebx + 0x34], 0
je 0x5333b3
cmp edi, 0x64
jle 0x5333b3
mov dword [ebx + 0xb4], 0x3e8
mov ecx, 0x3e8
jmp 0x5333b3
mov dword [ebx + 0xb4], ecx
cmp ecx, 0x3ea
je 0x5333e3
mov eax, 0x51eb851f
imul dword [ebx + 0x80]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0xe8], eax
jge 0x5333e3
mov ecx, 0x3ea
mov dword [ebx + 0xb4], ecx
cmp dword [ebx + 0x98], 1
jne 0x533420
cmp dword [ebx + 0xbc], 2
jne 0x533420
cmp dword [ebx + 0x40], 0
jne 0x533420
cmp ecx, 0x3ea
je 0x533420
cmp dword [ebx + 0xb8], 0x3ea
je 0x533420
mov dword [ebx + 0x98], 2
mov eax, 1
jmp 0x533422
xor eax, eax
mov dword [ebx + 0x40], eax
mov esi, dword [ebx + 0xb8]
test esi, esi
jle 0x533444
mov eax, dword [ebx + 0xb4]
cmp eax, 0x3ea
je 0x53346f
cmp esi, 0x3ea
je 0x533477
xor ecx, ecx
cmp dword [ebx + 0xc8], 0
je 0x5334cc
mov dword [ebp - 0x128], 1
mov dword [ebp - 0x13c], 1
mov dword [ebx + 0xc8], 0
jmp 0x5334d0
cmp esi, 0x3ea
je 0x533444
xor edx, edx
mov ecx, 1
cmp eax, 0x3ea
mov dword [ebp - 0x128], ecx
setne dl
mov dword [ebp - 0x13c], edx
jne 0x533446
mov eax, 0x51eb851f
imul dword [ebx + 0x80]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0xe8], eax
jl 0x5334bf
mov dword [ebx + 0xb4], esi
mov dword [ebp - 0x144], ecx
jmp 0x533446
xor ecx, ecx
mov dword [ebp - 0x128], ecx
jmp 0x533446
test ecx, ecx
je 0x533536
mov eax, 0x51eb851f
imul dword [ebx + 0x80]
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, ecx
add ecx, dword [ebp - 0xe8]
imul eax, dword [ebp - 0xf8]
cdq
idiv ecx
mov ecx, eax
mov eax, 0x101
cmp ecx, 0x101
cmovg ecx, eax
cmp dword [ebx + 0x84], 0
mov dword [ebp - 0x108], ecx
je 0x533536
mov eax, 0x51eb851f
imul dword [ebx + 0x8c]
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
cmovge ecx, eax
mov dword [ebp - 0x108], ecx
mov eax, dword [ebx + 0xb4]
cmp eax, 0x3ea
je 0x533586
cmp esi, 0x3ea
jne 0x53356c
mov ecx, dword [ebp - 0x12c]
lea edx, [ebp - 0x1c8]
call fcn.005367e0
mov eax, dword [ebx + 0xb4]
mov dword [ebp - 0x11c], 1
cmp eax, 0x3ea
je 0x533586
cmp dword [ebx + 0xcc], 0
jne 0x533586
cmp dword [ebx + 0x4c], 0
je 0x533730
mov esi, 0x451
cmp eax, 0x3ea
je 0x5335ca
mov ecx, dword [ebx + 0x2c]
mov eax, 0x51eb851f
add ecx, 0x2d
imul ecx, dword [ebp - 0x118]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebx + 0x84], 0
mov dword [ebp - 0x118], eax
jne 0x5335ca
sub eax, 0x3e8
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x100]
cmp dword [eax], 2
jne 0x5335e7
cmp dword [ebx + 0x68], 1
je 0x5335e7
mov edx, 0x5e8ac0
mov eax, 0x5e8b00
jmp 0x5335f1
mov edx, 0x5e8aa0
mov eax, 0x5e8ae0
mov ecx, dword [edx]
mov dword [ebp - 0xf4], eax
mov eax, dword [eax]
sub ecx, eax
imul ecx, edi
imul ecx, edi
sar ecx, 0xe
add ecx, eax
mov eax, dword [ebp - 0xf4]
mov dword [ebp + 0x48], ecx
mov ecx, dword [edx + 4]
mov eax, dword [eax + 4]
sub ecx, eax
imul ecx, edi
imul ecx, edi
sar ecx, 0xe
add ecx, eax
mov eax, dword [ebp - 0xf4]
mov dword [ebp + 0x4c], ecx
mov ecx, dword [edx + 8]
mov eax, dword [eax + 8]
sub ecx, eax
imul ecx, edi
imul ecx, edi
sar ecx, 0xe
add ecx, eax
mov eax, dword [ebp - 0xf4]
mov dword [ebp + 0x50], ecx
mov ecx, dword [edx + 0xc]
mov eax, dword [eax + 0xc]
sub ecx, eax
imul ecx, edi
imul ecx, edi
sar ecx, 0xe
add ecx, eax
mov eax, dword [ebp - 0xf4]
mov dword [ebp + 0x54], ecx
mov ecx, dword [edx + 0x10]
mov eax, dword [eax + 0x10]
sub ecx, eax
imul ecx, edi
imul ecx, edi
sar ecx, 0xe
add ecx, eax
mov eax, dword [ebp - 0xf4]
mov dword [ebp + 0x58], ecx
mov ecx, dword [edx + 0x14]
mov eax, dword [eax + 0x14]
sub ecx, eax
imul ecx, edi
imul ecx, edi
sar ecx, 0xe
add ecx, eax
mov eax, dword [ebp - 0xf4]
mov dword [ebp + 0x5c], ecx
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x18]
sub ecx, eax
imul ecx, edi
imul ecx, edi
sar ecx, 0xe
add ecx, eax
mov eax, dword [ebp - 0xf4]
mov dword [ebp + 0x60], ecx
mov ecx, dword [edx + 0x1c]
mov eax, dword [eax + 0x1c]
sub ecx, eax
imul ecx, edi
imul ecx, edi
mov edi, dword [ebx + 0xcc]
sar ecx, 0xe
add ecx, eax
mov dword [ebp + 0x64], ecx
lea ecx, [ebp + 0x64]
mov eax, dword [ecx - 4]
mov edx, dword [ecx]
test edi, edi
jne 0x5336ef
cmp dword [ebx + 0xc4], esi
jl 0x5336ed
sub eax, edx
jmp 0x5336ef
add eax, edx
cmp dword [ebp - 0x118], eax
jge 0x533703
dec esi
sub ecx, 8
cmp esi, 0x44d
jg 0x5336d8
mov dword [ebx + 0xc4], esi
test edi, edi
jne 0x533730
cmp dword [ebx + 0xb4], 0x3ea
je 0x533730
cmp dword [ebx + 0x50], edi
jne 0x533730
cmp esi, 0x44f
jle 0x533730
mov dword [ebx + 0xc4], 0x44f
mov ecx, dword [ebx + 0xc4]
mov eax, dword [ebx + 0x74]
cmp ecx, eax
jle 0x533745
mov dword [ebx + 0xc4], eax
mov ecx, eax
mov eax, dword [ebx + 0x70]
mov dword [ebp - 0xf4], eax
cmp eax, 0xfffffc18
je 0x53375d
mov dword [ebx + 0xc4], eax
mov ecx, eax
mov edx, dword [ebx + 0xb4]
mov eax, ecx
mov dword [ebp - 0x138], edx
mov esi, 0x44f
cmp edx, 0x3ea
je 0x533791
cmp dword [ebp - 0xfc], 0x3a98
jge 0x533791
mov eax, esi
cmp ecx, eax
cmovl eax, ecx
mov dword [ebx + 0xc4], eax
mov edi, dword [ebx + 0x80]
mov ecx, eax
cmp edi, 0x5dc0
jg 0x5337b7
cmp eax, 0x450
jle 0x5337b7
mov dword [ebx + 0xc4], 0x450
mov ecx, 0x450
mov eax, ecx
cmp edi, 0x3e80
jg 0x5337cd
cmp ecx, esi
jle 0x5337cd
mov dword [ebx + 0xc4], esi
mov eax, esi
mov ecx, eax
cmp edi, 0x2ee0
jg 0x5337ed
cmp eax, 0x44e
jle 0x5337ed
mov dword [ebx + 0xc4], 0x44e
mov ecx, 0x44e
mov esi, ecx
cmp edi, 0x1f40
jg 0x53380e
cmp ecx, 0x44d
jle 0x53380e
mov dword [ebx + 0xc4], 0x44d
mov esi, 0x44d
cmp dword [ebp - 0x134], 0x32
lea ecx, [edi*8]
mov edx, 0x2ee0
mov dword [ebp - 0xf0], ecx
mov eax, 0x1f40
cmovg eax, edx
imul eax, dword [ebp - 0xe8]
cdq
idiv ecx
cmp dword [ebp - 0xf8], eax
jge 0x533858
mov ecx, 0x3ea
mov dword [ebx + 0xb4], 0x3ea
mov dword [ebp - 0x138], ecx
jmp 0x53385e
mov ecx, dword [ebx + 0xb4]
mov dword [ebp - 0x120], esi
cmp ecx, 0x3ea
jne 0x533891
mov dword [ebp - 0x120], esi
cmp esi, 0x44e
jne 0x533891
mov esi, 0x44f
mov dword [ebx + 0xc4], 0x44f
mov dword [ebp - 0x120], esi
jmp 0x533897
mov esi, dword [ebp - 0x120]
mov eax, 0x51eb851f
imul edi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xe8]
cmp edx, eax
jle 0x533b6f
cmp ecx, 0x3ea
je 0x5338ca
cmp esi, 0x44f
jle 0x533b6f
mov eax, 0x51eb851f
xor ecx, ecx
imul edi
mov eax, dword [ebp + 0x7c]
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
cmp dword [ebp - 0xe8], esi
mov dword [ebp - 0x11c], esi
setg cl
add eax, 0xfffffffd
add ecx, 2
cdq
idiv ecx
mov edx, 0x4fc
mov dword [ebp - 0x130], ecx
cmp eax, 0x4fc
cmovg eax, edx
mov dword [ebp - 0x118], eax
imul eax, ecx
call fcn.0056f990
mov eax, dword [ebx + 0x78]
xor edi, edi
mov edx, dword [ebp - 0x138]
mov ecx, esp
mov dword [ebp - 0xfc], eax
mov eax, dword [ebx + 0x68]
mov dword [ebp - 0x134], eax
mov eax, dword [ebp - 0x120]
mov dword [ebx + 0x78], edx
mov edx, dword [ebx + 0x40]
mov dword [ebx + 0x70], eax
mov eax, dword [ebx + 0x98]
mov dword [ebp - 0x110], ecx
mov dword [ebp - 0xe0], edi
mov dword [ebx + 0x68], eax
mov dword [ebp - 0x138], edx
test edx, edx
je 0x53396c
mov dword [ebx + 0x68], 1
jmp 0x533972
mov dword [ebx + 0xbc], eax
mov eax, dword [ebp - 0x118]
xor edx, edx
mov dword [ebp - 0x108], edx
cmp dword [ebp - 0x144], 0
mov dword [ebx + 0x40], 0
je 0x5339ad
xor eax, eax
cmp dword [ebp - 0xe8], esi
setg al
inc eax
cmp edx, eax
mov eax, dword [ebp - 0x118]
jne 0x5339ad
mov dword [ebx + 0x78], 0x3ea
mov esi, dword [ebx + 0x80]
push eax
mov eax, 0x51eb851f
imul esi
push ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
mov eax, dword [ebp - 0x100]
mov ecx, dword [eax]
mov eax, 0x51eb851f
imul ecx, esi
imul ecx
mov ecx, dword [ebp - 0x104]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, dword [ebp - 0x108]
lea edx, [ecx + eax*4]
mov ecx, ebx
call fcn.005330a0
mov esi, eax
add esp, 0xc
mov dword [ebp - 0xf0], esi
test esi, esi
js 0x534f14
cmp esi, 1
jl 0x534f14
mov ecx, dword [ebp - 0x110]
mov dl, byte [ecx]
mov byte [ebp - 0x111], dl
test edi, edi
jne 0x533a49
mov byte [ebp - 0xe4], dl
mov edx, 0x1f40
call fcn.00536760
mov ecx, dword [ebp - 0x110]
mov dl, byte [ebp - 0x111]
mov dword [ebp + 0x44], eax
jmp 0x533a59
mov al, byte [ebp - 0xe4]
xor al, dl
test al, 0xfc
jne 0x534f14
movzx eax, dl
and eax, 3
jne 0x533a66
lea esi, [eax + 1]
jmp 0x533a8b
cmp eax, 3
je 0x533a72
mov esi, 2
jmp 0x533a8b
cmp esi, 2
jl 0x534f14
movzx esi, byte [ecx + 1]
and esi, 0x3f
cmp esi, 1
jb 0x534f14
lea eax, [edi + esi]
imul eax, dword [ebp + 0x44]
cmp eax, 0x3c0
jg 0x534f14
mov edx, dword [ebp - 0xf0]
lea ecx, [ebp - 0x1c]
push 0
lea ecx, [ecx + edi*2]
push ecx
mov ecx, dword [ebp - 0x110]
lea eax, [ebp - 0xdc]
lea eax, [eax + edi*4]
push eax
lea eax, [ebp - 0xe9]
push eax
push 0
call fcn.00536110
add esp, 0x14
cmp eax, 1
jl 0x533ae2
mov edi, dword [ebp - 0xe0]
add edi, esi
mov dword [ebp - 0xe0], edi
jmp 0x533af0
test eax, eax
js 0x534f14
mov edi, dword [ebp - 0xe0]
mov edx, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x110]
inc edx
mov eax, dword [ebp - 0x118]
add ecx, eax
mov esi, dword [ebp - 0x11c]
mov dword [ebp - 0x108], edx
mov dword [ebp - 0x110], ecx
cmp edx, dword [ebp - 0x130]
jl 0x533980
push dword [ebp + 0x7c]
mov ecx, dword [ebp - 0x124]
xor edx, edx
push ecx
push edi
lea ecx, [ebp - 0xe4]
call fcn.00537fe0
add esp, 0xc
test eax, eax
js 0x534f14
mov ecx, dword [ebp - 0xfc]
mov dword [ebx + 0x78], ecx
mov ecx, dword [ebp - 0xf4]
mov dword [ebx + 0x70], ecx
mov ecx, dword [ebp - 0x134]
mov dword [ebx + 0x68], ecx
mov ecx, dword [ebp - 0x138]
mov dword [ebx + 0x40], ecx
jmp 0x534fa3
cmp ecx, 0x3e8
jne 0x533b8b
cmp esi, 0x44f
jle 0x533ba5
mov dword [ebx + 0xb4], 0x3e9
jmp 0x533b93
cmp ecx, 0x3e9
jne 0x533ba5
cmp esi, 0x44f
jg 0x533ba5
mov dword [ebx + 0xb4], 0x3e8
mov eax, dword [ebx + 0x8c]
imul eax, edx
mov esi, dword [ebp - 0xf8]
cdq
idiv dword [ebp - 0xf0]
mov edx, esi
sub edx, dword [ebp - 0x108]
cmp edx, eax
mov dword [ebp - 0xf0], edx
mov ecx, edx
cmovge ecx, eax
lea eax, [esi - 1]
dec ecx
mov dword [ebp - 0x138], ecx
mov ecx, dword [ebp - 0x124]
inc ecx
mov edx, ecx
mov dword [ebp - 0x124], ecx
mov dword [ebp - 0x118], ecx
lea ecx, [ebp - 0x174]
push eax
call fcn.00537b50
mov edi, dword [ebp - 0x100]
add esp, 4
mov eax, dword [ebp - 0xe8]
add eax, dword [ebp - 0xec]
mov esi, dword [edi]
imul eax, esi
shl eax, 2
call fcn.0056f990
imul esi, dword [ebp - 0xec]
mov edx, esp
xor ecx, ecx
mov dword [ebp - 0xf4], edx
test esi, esi
jle 0x533c61
mov esi, dword [ebp - 0xec]
jmp 0x533c40
mov eax, dword [ebx + 0x94]
sub eax, esi
imul eax, dword [edi]
add eax, ecx
fld dword [ebx + eax*4 + 0xd0]
fstp dword [edx + ecx*4]
mov eax, dword [edi]
inc ecx
imul eax, esi
cmp ecx, eax
jl 0x533c40
cmp dword [ebx + 0xb4], 0x3ea
jne 0x533cd3
mov esi, 0x3c
mov ecx, esi
call fcn.0053dee0
mov edx, eax
mov ecx, 8
sub ecx, edx
je 0x533c90
test ecx, ecx
jns 0x533c8e
neg ecx
rol esi, cl
jmp 0x533c90
ror esi, cl
and esi, 0x7f
mov eax, 0x80
sub eax, esi
imul eax, esi
mov dword [ebp - 0x108], eax
movzx eax, ax
imul ecx, eax, 0xb3
mov eax, 0xf
sub eax, edx
mov edx, dword [ebp - 0x108]
shl eax, 7
add eax, esi
sar edx, 0x10
imul esi, edx, 0xb3
sar ecx, 0x10
add eax, ecx
add esi, eax
shl esi, 8
jmp 0x533cdc
mov eax, dword [ebp - 0x12c]
mov esi, dword [eax + 8]
mov edx, dword [ebx + 0xa0]
sub esi, edx
movzx eax, si
imul ecx, eax, 0x3d7
sar esi, 0x10
imul eax, esi, 0x3d7
sar ecx, 0x10
add ecx, edx
mov edx, dword [ebx + 0x60]
add ecx, eax
cmp dword [ebx + 0x5c], 0x800
mov dword [ebx + 0xa0], ecx
jne 0x533d4e
push dword [ebx + 0x80]
lea eax, [ebx + 0xa4]
sar ecx, 8
push edx
push dword [ebp - 0xe8]
imul edx, dword [ebp - 0xec]
push eax
mov eax, dword [ebp - 0xf4]
lea eax, [eax + edx*4]
push eax
call fcn.00538220
mov ecx, dword [ebp - 0x104]
mov edx, eax
call fcn.00532e70
add esp, 0x14
jmp 0x533d91
mov esi, dword [ebp - 0xe8]
xor ecx, ecx
imul edx, esi
test edx, edx
jle 0x533d91
mov edx, dword [ebp - 0xf4]
mov ebx, dword [ebp - 0x104]
lea esp, [esp]
mov eax, dword [edi]
imul eax, dword [ebp - 0xec]
fld dword [ebx + ecx*4]
add eax, ecx
inc ecx
fstp dword [edx + eax*4]
mov eax, dword [edi]
imul eax, esi
cmp ecx, eax
jl 0x533d70
mov ebx, dword [ebp - 0x130]
mov edi, dword [ebx + 0xb4]
cmp edi, 0x3ea
je 0x5342b6
mov eax, dword [ebp - 0x100]
mov esi, dword [eax]
mov eax, dword [ebp - 0xe8]
imul eax, esi
mov dword [ebp - 0x104], esi
add eax, eax
call fcn.0056f990
mov eax, dword [ebp - 0x138]
imul eax, dword [ebp - 0x134]
mov dword [ebp - 0x108], esp
shl eax, 3
mov dword [ebx + 0x24], eax
cmp edi, 0x3e9
jne 0x533ee7
mov edi, dword [ebx + 0x98]
cdq
idiv edi
mov ecx, dword [ebx + 0x80]
mov edx, eax
imul eax, dword [ebp - 0xe8], 0x64
cmp dword [ebp - 0x120], 0x450
mov dword [ebx + 0x24], edx
jne 0x533e5b
imul ecx, dword [ebx + 0x84], 0x3e8
add ecx, edx
add ecx, ecx
cmp dword [ebx + 0x80], eax
mov eax, 0x55555556
jne 0x533e30
add ecx, 0xfa0
jmp 0x533e36
add ecx, 0x7d0
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, edi
mov dword [ebx + 0x24], eax
mov eax, dword [ebx + 0x60]
mov ecx, dword [ebx + 0x80]
mov edi, dword [ebx + 0xb4]
mov dword [ebp - 0x104], eax
jmp 0x533ea8
mov dword [ebp - 0x104], esi
cmp ecx, eax
jne 0x533e82
imul eax, dword [ebx + 0x84], 0xbb8
add edx, 0x1f40
add eax, edx
cdq
sub eax, edx
mov edx, dword [ebx + 0x98]
jmp 0x533e9e
mov eax, dword [ebx + 0x84]
add eax, 9
mov dword [ebp - 0x110], edi
imul eax, eax, 0x3e8
add eax, edx
cdq
sub eax, edx
mov edx, edi
sar eax, 1
mov edi, 0x3e9
mov dword [ebx + 0x24], eax
mov esi, dword [ebx + 0x24]
lea eax, [ecx*8]
imul esi, edx
cdq
idiv dword [ebp - 0xe8]
mov ecx, dword [ebx + 0x8c]
sub ecx, eax
mov dword [ebx + 0x24], esi
shl ecx, 2
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
mov esi, dword [ebp - 0x104]
jle 0x533ee7
mov dword [ebx + 0x24], eax
imul eax, dword [ebp - 0xe8], 0x3e8
mov ecx, 0x3e80
mov dword [ebx + 8], esi
mov esi, 0x2ee0
cdq
idiv dword [ebx + 0x80]
mov edx, dword [ebp - 0x120]
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 0x98]
mov dword [ebx + 0xc], eax
cmp edx, 0x44d
jne 0x533f28
mov dword [ebx + 0x1c], 0x1f40
jmp 0x533f36
cmp edx, 0x44e
mov eax, ecx
cmove eax, esi
mov dword [ebx + 0x1c], eax
cmp edi, 0x3e9
mov edx, 0x1f40
cmovne ecx, edx
mov dword [ebx + 0x18], ecx
mov dword [ebx + 0x14], 0x3e80
cmp dword [ebx + 0xb4], 0x3e8
jne 0x533fc1
cmp dword [ebp - 0x134], 0x32
jle 0x533f81
mov eax, dword [ebp - 0xfc]
lea ecx, [eax + eax]
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, 0x1f40
jmp 0x533f87
mov ecx, dword [ebp - 0xfc]
cmp ecx, 0x32c8
jge 0x533fa4
mov eax, dword [ebx + 0x1c]
cmp eax, 0x2ee0
mov dword [ebx + 0x14], 0x2ee0
cmovg eax, esi
mov dword [ebx + 0x1c], eax
cmp ecx, 0x2580
jge 0x533fc1
mov eax, dword [ebx + 0x1c]
cmp eax, 0x1f40
mov dword [ebx + 0x14], 0x1f40
cmovg eax, edx
mov dword [ebx + 0x1c], eax
mov esi, dword [ebx + 0x84]
xor eax, eax
test esi, esi
mov ecx, 0x4fb
sete al
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 0xf0]
dec eax
cmp eax, ecx
cmovg eax, ecx
mov dword [ebp - 0x134], eax
shl eax, 3
cmp dword [ebx + 0xb4], 0x3e9
mov dword [ebx + 0x3c], eax
jne 0x534011
lea ecx, [eax + eax*8]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebx + 0x3c], eax
mov edi, 1
test esi, esi
jne 0x534046
mov esi, dword [ebx + 0x24]
mov eax, dword [ebp - 0xe8]
mov ecx, dword [ebx + 0x80]
imul eax, esi
shl ecx, 3
cdq
idiv ecx
shl eax, 3
mov dword [ebx + 0x3c], eax
lea eax, [esi - 0x7d0]
cmp eax, edi
cmovl eax, edi
mov dword [ebx + 0x24], eax
cmp dword [ebp - 0x11c], 0
movss xmm2, dword [0x5f7cb8]
movss xmm3, dword [0x5f7d0c]
movss xmm1, dword [0x5f7cb4]
je 0x53413e
mov eax, dword [ebp - 0x100]
xor ecx, ecx
mov edx, dword [ebx + 0x94]
mov dword [ebp - 0x110], 0
mov eax, dword [eax]
imul eax, edx
test eax, eax
jle 0x534100
mov edi, dword [ebp - 0x108]
lea esi, [ebx + 0xd0]
jmp 0x5340a0
movss xmm0, dword [esi]
mulss xmm0, xmm2
comiss xmm0, xmm3
movss dword [ebp - 0xfc], xmm0
ja 0x5340c1
mov dword [ebp - 0xfc], 0xc7000000
jmp 0x5340d0
comiss xmm1, xmm0
ja 0x5340d0
mov dword [ebp - 0xfc], 0x46fffe00
fld dword [ebp - 0xfc]
fistp dword [ebp - 0x11c]
mov ax, word [ebp - 0x11c]
add esi, 4
mov word [edi + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x100]
mov edx, dword [ebx + 0x94]
mov eax, dword [eax]
imul eax, edx
cmp ecx, eax
jl 0x5340a0
mov esi, dword [ebp - 0x108]
lea eax, [ebp - 0x110]
mov ecx, dword [ebp - 0x12c]
push 1
push eax
push 0
push edx
push esi
lea edx, [ebx + 8]
call fcn.005368f0
movss xmm1, dword [0x5f7cb4]
add esp, 0x14
movss xmm2, dword [0x5f7cb8]
movss xmm3, dword [0x5f7d0c]
jmp 0x534144
mov esi, dword [ebp - 0x108]
mov edi, dword [ebp - 0x100]
xor edx, edx
mov eax, dword [ebp - 0xe8]
mov ecx, dword [edi]
imul eax, ecx
test eax, eax
jle 0x5341ca
mov ebx, dword [ebp - 0xe8]
imul ecx, dword [ebp - 0xec]
mov eax, dword [ebp - 0xf4]
add ecx, edx
movss xmm0, dword [eax + ecx*4]
mulss xmm0, xmm2
comiss xmm0, xmm3
movss dword [ebp - 0xfc], xmm0
ja 0x534192
mov dword [ebp - 0xfc], 0xc7000000
jmp 0x5341a1
comiss xmm1, xmm0
ja 0x5341a1
mov dword [ebp - 0xfc], 0x46fffe00
fld dword [ebp - 0xfc]
fistp dword [ebp - 0x11c]
mov ax, word [ebp - 0x11c]
mov word [esi + edx*2], ax
mov eax, ebx
mov ecx, dword [edi]
inc edx
imul eax, ecx
cmp edx, eax
jl 0x534161
mov ebx, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x12c]
lea eax, [ebp - 0x134]
push 0
push eax
lea eax, [ebp - 0x174]
push eax
push dword [ebp - 0xe8]
lea edx, [ebx + 8]
push esi
call fcn.005368f0
mov edi, eax
add esp, 0x14
mov dword [ebp - 0x110], edi
test edi, edi
jne 0x534f14
mov ecx, dword [ebx + 0xb4]
cmp dword [ebp - 0x134], eax
jne 0x534244
mov dword [ebx + 0xfd0], eax
mov eax, dword [ebx + 0x80]
cdq
idiv dword [ebp - 0xe8]
push dword [ebx + 0x98]
mov edx, eax
push dword [ebp - 0x120]
call fcn.00532d10
mov ecx, dword [ebp - 0x124]
mov byte [ecx - 1], al
jmp 0x534f9b
cmp ecx, 0x3e8
jne 0x53428e
mov eax, dword [ebx + 0x48]
cmp eax, 0x1f40
jne 0x534262
mov dword [ebp - 0x120], 0x44d
jmp 0x53428e
cmp eax, 0x2ee0
jne 0x534275
mov dword [ebp - 0x120], 0x44e
jmp 0x53428e
mov ecx, dword [ebp - 0x120]
cmp eax, 0x3e80
mov eax, 0x44f
cmove ecx, eax
mov dword [ebp - 0x120], ecx
mov eax, dword [ebx + 0x58]
mov dword [ebx + 0x44], eax
test eax, eax
je 0x5342b6
mov dword [ebp - 0x128], 1
mov dword [ebp - 0x13c], 0
mov dword [ebx + 0xc8], 1
mov ecx, dword [ebp - 0x120]
mov eax, 0x15
add ecx, 0xfffffbb3
cmp ecx, 4
ja case.0x5342cc.1105
jmp dword [ecx*4 + 0x534fbc]
mov eax, 0xd
jmp case.0x5342cc.1105
mov eax, 0x11
jmp case.0x5342cc.1105
mov eax, 0x13
mov esi, dword [ebp - 0x10c]
push eax
push 0x271c
push esi
call fcn.0053b7a0
push dword [ebx + 0x98]
push 0x2718
push esi
call fcn.0053b7a0
push 0xffffffffffffffff
push 0xfa2
push esi
call fcn.0053b7a0
add esp, 0x24
cmp dword [ebx + 0xb4], 0x3e8
je 0x53443e
push 0
push 0xfa6
push esi
call fcn.0053b7a0
push 2
push 0x2712
push esi
call fcn.0053b7a0
mov eax, dword [ebx + 0xb4]
add esp, 0x18
mov dword [ebp - 0x108], eax
cmp eax, 0x3e9
jne 0x5343e0
mov edi, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x160]
bsr eax, edi
mov dword [ebp - 0x12c], edi
sub ecx, eax
add ecx, 6
sar ecx, 3
cmp dword [ebp - 0x128], 0
lea esi, [ecx + 3]
cmove esi, ecx
cmp dword [ebx + 0x84], 0
je 0x5343c3
mov eax, dword [ebx + 0x24]
imul eax, dword [ebp - 0xe8]
mov ecx, dword [ebx + 0x80]
shl ecx, 3
mov dword [ebp - 0x108], 0x3e9
cdq
idiv ecx
sub esi, eax
add esi, dword [ebp - 0x138]
mov dword [ebp - 0x104], esi
jmp 0x53445f
mov eax, dword [ebp - 0x138]
cmp esi, eax
mov dword [ebp - 0x108], 0x3e9
cmovg eax, esi
mov dword [ebp - 0x104], eax
jmp 0x53445f
cmp dword [ebx + 0x84], 0
je 0x534430
push 1
push 0xfa6
push esi
call fcn.0053b7a0
push dword [ebx + 0x88]
push 0xfb4
push esi
call fcn.0053b7a0
push dword [ebx + 0x8c]
push 0xfa2
push esi
call fcn.0053b7a0
mov ecx, dword [ebp - 0xf0]
add esp, 0x24
mov eax, dword [ebx + 0xb4]
dec ecx
mov dword [ebp - 0x104], ecx
jmp 0x53444d
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x104], eax
jmp 0x534453
mov dword [ebp - 0x104], 0
mov eax, 0x3e8
mov dword [ebp - 0x108], eax
mov edi, dword [ebp - 0x158]
mov dword [ebp - 0x12c], edi
mov esi, dword [ebp - 0x100]
mov eax, 0x51eb851f
mov ecx, dword [ebx + 0x80]
imul ecx, dword [esi]
imul ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0xf0], eax
shl eax, 2
call fcn.0056f990
mov eax, dword [ebp - 0x108]
mov ecx, dword [esi]
mov esi, ecx
mov dword [ebp - 0x130], esp
cmp eax, 0x3e8
je 0x534529
mov edx, dword [ebx + 0xb8]
cmp eax, edx
je 0x534529
test edx, edx
jle 0x534529
cmp dword [ebp - 0xf0], 0
jle 0x534529
xor edi, edi
mov ecx, dword [ebx + 0x94]
mov eax, 0x51eb851f
imul dword [ebx + 0x80]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov eax, dword [ebp - 0x100]
sub ecx, dword [ebx + 0x64]
imul ecx, dword [eax]
add ecx, edi
fld dword [ebx + ecx*4 + 0xd0]
mov ecx, dword [ebp - 0x130]
fstp dword [ecx + edi*4]
mov esi, dword [eax]
inc edi
mov ecx, dword [ebx + 0x80]
mov eax, 0x51eb851f
imul ecx, esi
imul ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jl 0x5344c1
mov edi, dword [ebp - 0x158]
mov dword [ebp - 0x12c], edi
mov edx, dword [ebx + 0x94]
xor ecx, ecx
mov eax, edx
sub eax, dword [ebp - 0xe8]
sub eax, dword [ebp - 0xec]
imul eax, esi
test eax, eax
jle 0x53458f
mov edi, dword [ebp - 0xe8]
lea edx, [ebx + 0xd0]
mov esi, dword [ebp - 0x100]
mov eax, dword [esi]
imul eax, edi
add eax, ecx
inc ecx
fld dword [ebx + eax*4 + 0xd0]
fstp dword [edx]
mov eax, dword [ebx + 0x94]
add edx, 4
mov esi, dword [esi]
sub eax, edi
sub eax, dword [ebp - 0xec]
imul eax, esi
cmp ecx, eax
jl 0x534552
mov edi, dword [ebp - 0x12c]
mov edx, dword [ebx + 0x94]
mov eax, esi
imul eax, edx
cmp ecx, eax
jge 0x5345df
mov edi, dword [ebp - 0x100]
lea edx, [ecx + 0x34]
lea edx, [ebx + edx*4]
mov eax, dword [ebp - 0xe8]
sub eax, dword [ebx + 0x94]
add eax, dword [ebp - 0xec]
imul eax, dword [edi]
mov esi, dword [ebp - 0xf4]
add eax, ecx
inc ecx
fld dword [esi + eax*4]
fstp dword [edx]
mov eax, dword [ebx + 0x94]
add edx, 4
mov esi, dword [edi]
imul eax, esi
cmp ecx, eax
jl 0x5345a4
mov edi, dword [ebp - 0x12c]
mov edx, dword [ebx + 0xb4]
mov dword [ebp - 0xec], edx
cmp edx, 0x3e9
jne 0x5345fc
cmp dword [ebx + 0x98], 1
jne 0x534606
mov esi, dword [ebx + 0x60]
mov dword [ebx + 0x54], 0x4000
mov dword [ebp - 0xf0], edx
cmp esi, 2
jne 0x5347be
mov eax, 0x4000
cmp word [ebx + 0x9c], ax
jl 0x534634
mov esi, edx
mov dword [ebp - 0xec], edx
cmp dword [ebx + 0x54], eax
jge 0x5347c4
lea eax, [ebp - 0x11c]
push eax
push 0x271f
push dword [ebp - 0x10c]
call fcn.0053b7a0
mov eax, dword [ebp - 0x100]
add esp, 0xc
mov ecx, dword [ebp - 0x11c]
movss xmm7, dword [0x5f7b88]
movss xmm6, dword [0x5f7b2c]
movaps xmm2, xmm7
mov eax, dword [eax]
movaps xmm5, xmm7
mov dword [ebp - 0xf0], eax
mov eax, 0xbb80
cdq
idiv dword [ebx + 0x80]
mov esi, dword [ecx + 0x3c]
mov edi, eax
mov eax, dword [ecx + 4]
cdq
idiv edi
movsx ecx, word [ebx + 0x9c]
mov dword [ebp - 0xfc], edi
mov edx, eax
xor edi, edi
cvtsi2ss xmm0, ecx
mulss xmm0, dword [0x5f7a6c]
subss xmm2, xmm0
cvtsi2ss xmm0, dword [ebx + 0x54]
movss dword [ebp - 0x134], xmm2
mulss xmm0, dword [0x5f7a6c]
subss xmm5, xmm0
test edx, edx
jle 0x534745
mov ecx, dword [ebp - 0xf0]
mov edi, edx
mov eax, dword [ebp - 0xfc]
shl ecx, 2
shl eax, 2
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0xf4]
lea ecx, [ecx]
movss xmm1, dword [esi]
movaps xmm0, xmm7
movss xmm4, dword [eax]
mulss xmm1, xmm1
add esi, dword [ebp - 0xfc]
subss xmm0, xmm1
movaps xmm2, xmm1
mulss xmm2, xmm5
mulss xmm0, dword [ebp - 0x134]
addss xmm2, xmm0
movaps xmm0, xmm4
subss xmm0, dword [eax + 4]
mulss xmm0, xmm6
mulss xmm2, xmm0
subss xmm4, xmm2
addss xmm2, dword [eax + 4]
movss dword [eax], xmm4
movss dword [eax + 4], xmm2
add eax, ecx
sub edx, 1
jne 0x5346f0
mov esi, dword [ebp - 0xe8]
cmp edi, esi
jge 0x53479d
mov ecx, dword [ebp - 0xf0]
mov eax, edi
imul eax, ecx
lea edx, [ecx*4]
mov ecx, dword [ebp - 0xf4]
lea eax, [ecx + eax*4]
mov ecx, esi
sub ecx, edi
mov edi, edi
movss xmm2, dword [eax]
movaps xmm0, xmm2
subss xmm0, dword [eax + 4]
mulss xmm0, xmm6
mulss xmm0, xmm5
subss xmm2, xmm0
addss xmm0, dword [eax + 4]
movss dword [eax], xmm2
movss dword [eax + 4], xmm0
add eax, edx
sub ecx, 1
jne 0x534770
mov esi, dword [ebx + 0xb4]
mov edx, esi
mov ax, word [ebx + 0x54]
mov edi, dword [ebp - 0x158]
mov word [ebx + 0x9c], ax
mov dword [ebp - 0xec], edx
jmp 0x5347c4
mov esi, dword [ebp - 0xf0]
mov eax, edx
cmp esi, 0x3ea
je 0x534970
bsr ecx, edi
xor eax, eax
mov dword [ebp - 0xf0], 0x14
cmp esi, 0x3e9
mov dword [ebp - 0x11c], edx
cmove eax, dword [ebp - 0xf0]
sub eax, ecx
mov ecx, dword [ebp - 0x160]
add ecx, 0x10
add ecx, eax
mov eax, dword [ebp - 0xf8]
lea eax, [eax*8 - 8]
cmp ecx, eax
jg 0x53496a
cmp esi, 0x3e9
jne 0x53487a
mov edx, dword [ebp - 0x128]
test edx, edx
jne 0x534847
mov ecx, dword [ebp - 0x160]
bsr eax, edi
sub ecx, eax
mov eax, dword [ebp - 0x104]
add ecx, 0x24
shl eax, 3
cmp ecx, eax
jg 0x53497c
mov eax, edi
shr eax, 0xc
sub edi, eax
test edx, edx
je 0x53485a
add dword [ebp - 0x154], edi
test edx, edx
cmovne edi, eax
lea ecx, [ebp - 0x174]
mov dword [ebp - 0x158], edi
call fcn.00537a70
mov edx, dword [ebx + 0xb4]
mov edi, dword [ebp - 0x158]
cmp dword [ebp - 0x128], 0
mov dword [ebp - 0xec], edx
je 0x53497c
mov ecx, dword [ebp - 0x13c]
mov eax, edi
shr eax, 1
sub edi, eax
test ecx, ecx
je 0x5348a5
add dword [ebp - 0x154], edi
test ecx, ecx
cmovne edi, eax
lea ecx, [ebp - 0x174]
mov dword [ebp - 0x158], edi
call fcn.00537a70
mov ecx, dword [ebx + 0xb4]
mov edi, dword [ebp - 0x158]
mov esi, dword [ebp - 0xf8]
mov dword [ebp - 0xec], ecx
cmp ecx, 0x3e9
jne 0x5348e4
sub esi, dword [ebp - 0x104]
sub esi, 2
jmp 0x5348fe
mov ecx, dword [ebp - 0x160]
bsr eax, edi
sub ecx, eax
add ecx, 6
sar ecx, 3
sub esi, ecx
mov ecx, dword [ebp - 0xec]
dec esi
mov eax, 0x51eb851f
imul dword [ebx + 0x8c]
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
cmovge esi, eax
mov eax, 2
cmp esi, eax
cmovl esi, eax
mov eax, 0x101
cmp esi, 0x101
cmovg esi, eax
mov dword [ebp - 0xf0], esi
cmp ecx, 0x3e9
jne 0x534962
push 0x100
lea edx, [esi - 2]
lea ecx, [ebp - 0x174]
call fcn.00537c80
mov eax, dword [ebx + 0xb4]
add esp, 4
mov edi, dword [ebp - 0x158]
jmp 0x534994
mov eax, dword [ebp - 0xec]
jmp 0x534994
mov eax, dword [ebp - 0x11c]
mov dword [ebp - 0x128], 0
jmp 0x534982
mov eax, dword [ebp - 0xec]
xor esi, esi
mov dword [ebx + 0xc8], 0
mov dword [ebp - 0xf0], esi
xor edx, edx
mov ecx, 0x11
cmp eax, 0x3ea
cmove ecx, edx
mov dword [ebp - 0xfc], ecx
cmp eax, 0x3e8
jne 0x5349da
bsr eax, edi
mov edi, dword [ebp - 0x160]
lea ecx, [ebp - 0x174]
sub edi, eax
add edi, 6
sar edi, 3
mov dword [ebp - 0x110], edi
call fcn.00537dc0
mov dword [ebp - 0x11c], edi
jmp 0x534a21
mov edi, dword [ebp - 0xf8]
mov edx, dword [ebp - 0x16c]
sub edi, esi
mov eax, dword [ebp - 0x170]
dec edi
cmp edi, dword [ebp - 0x104]
mov ecx, dword [ebp - 0x174]
cmovge edi, dword [ebp - 0x104]
sub eax, edx
add eax, ecx
mov dword [ebp - 0x11c], edi
push edx
sub ecx, edx
push eax
add ecx, edi
push ecx
call fcn.00586a50
add esp, 0xc
mov dword [ebp - 0x170], edi
cmp dword [ebp - 0x128], 0
je 0x534ac7
cmp dword [ebp - 0x13c], 0
je 0x534ac7
push 0
push 0x271a
push dword [ebp - 0x10c]
call fcn.0053b7a0
push 0
push 0xfa6
push dword [ebp - 0x10c]
call fcn.0053b7a0
mov eax, dword [ebp - 0x124]
mov ecx, dword [ebp - 0x10c]
add eax, edi
push 0
push esi
push eax
mov eax, 0x51eb851f
imul dword [ebx + 0x80]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xf4]
push eax
call fcn.00539870
add esp, 0x28
test eax, eax
js 0x534f14
lea eax, [ebp - 0x140]
push eax
push 0xfbf
push dword [ebp - 0x10c]
call fcn.0053b7a0
push 0xfbc
push dword [ebp - 0x10c]
call fcn.0053b7a0
add esp, 0x14
push dword [ebp - 0xfc]
push 0x271a
push dword [ebp - 0x10c]
call fcn.0053b7a0
mov ecx, dword [ebx + 0xb4]
add esp, 0xc
cmp ecx, 0x3e8
je 0x534bae
mov eax, dword [ebx + 0xb8]
cmp ecx, eax
je 0x534b57
test eax, eax
jle 0x534b57
push 0xfbc
push dword [ebp - 0x10c]
call fcn.0053b7a0
mov ecx, dword [ebp - 0x10c]
lea eax, [ebp - 0xec]
push 0
push 2
push eax
mov eax, 0x51eb851f
imul dword [ebx + 0x80]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x130]
push eax
call fcn.00539870
push 0
push 0x2712
push dword [ebp - 0x10c]
call fcn.0053b7a0
add esp, 0x24
mov eax, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x160]
mov dword [ebp - 0x130], eax
bsr eax, eax
sub ecx, eax
lea eax, [edi*8]
dec ecx
cmp ecx, eax
jg 0x534bb6
mov edx, dword [ebp - 0xf4]
lea eax, [ebp - 0x174]
mov ecx, dword [ebp - 0x10c]
push eax
push edi
push 0
push dword [ebp - 0xe8]
call fcn.00539870
mov edi, eax
add esp, 0x10
mov dword [ebp - 0x110], edi
test edi, edi
js 0x534f14
mov edi, dword [ebp - 0x158]
jmp 0x534bbc
mov edi, dword [ebp - 0x130]
cmp dword [ebp - 0x128], 0
je 0x534cc9
cmp dword [ebp - 0x13c], 0
jne 0x534cc9
mov ecx, dword [ebx + 0x80]
mov eax, 0x51eb851f
imul ecx
mov eax, 0x51eb851f
sar edx, 6
mov edi, edx
shr edi, 0x1f
add edi, edx
imul ecx
push 0xfbc
push dword [ebp - 0x10c]
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
call fcn.0053b7a0
push 0
push 0x271a
push dword [ebp - 0x10c]
call fcn.0053b7a0
push 0
push 0x2712
push dword [ebp - 0x10c]
call fcn.0053b7a0
mov ecx, dword [ebp - 0x100]
lea eax, [ebp - 0xec]
push 0
push 2
push eax
mov eax, dword [ebp - 0xe8]
sub eax, esi
sub eax, edi
imul eax, dword [ecx]
mov ecx, dword [ebp - 0xf4]
push esi
lea edx, [ecx + eax*4]
mov ecx, dword [ebp - 0x10c]
call fcn.00539870
mov eax, dword [ebp - 0x11c]
add eax, dword [ebp - 0x124]
mov esi, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x100]
push 0
push esi
push eax
mov eax, dword [ebp - 0xe8]
sub eax, edi
imul eax, dword [ecx]
mov ecx, dword [ebp - 0xf4]
push edi
mov edi, dword [ebp - 0x10c]
lea edx, [ecx + eax*4]
mov ecx, edi
call fcn.00539870
add esp, 0x40
test eax, eax
js 0x534f14
lea eax, [ebp - 0x140]
push eax
push 0xfbf
push edi
call fcn.0053b7a0
mov edi, dword [ebp - 0x158]
add esp, 0xc
mov eax, dword [ebx + 0x80]
cdq
idiv dword [ebp - 0xe8]
push dword [ebx + 0x98]
mov ecx, dword [ebx + 0xb4]
mov edx, eax
push dword [ebp - 0x120]
dec dword [ebp - 0x124]
call fcn.00532d10
mov edx, dword [ebp - 0x124]
add esp, 8
mov byte [edx], al
mov eax, edi
xor eax, dword [ebp - 0x140]
cmp dword [ebp - 0x144], 0
mov dword [ebx + 0xfd0], eax
mov eax, 0x3ea
jne 0x534d22
mov eax, dword [ebx + 0xb4]
mov dword [ebx + 0xb8], eax
mov eax, dword [ebx + 0x98]
mov ecx, dword [ebp - 0x160]
mov dword [ebx + 0xbc], eax
mov eax, dword [ebp - 0xe8]
mov dword [ebx + 0xc0], eax
bsr eax, edi
mov dword [ebx + 0xcc], 0
sub ecx, eax
mov eax, dword [ebp - 0xf8]
dec ecx
lea eax, [eax*8 - 8]
cmp ecx, eax
jle 0x534d96
mov ecx, dword [ebp - 0xf8]
cmp ecx, 2
jge 0x534d7c
mov eax, 0xfffffffe
jmp 0x534fa3
mov edi, dword [ebp - 0x118]
mov eax, 1
mov byte [edi], 0
mov dword [ebx + 0xfd0], 0
jmp 0x534dce
cmp dword [ebx + 0xb4], 0x3e8
mov eax, dword [ebp - 0x110]
jne 0x534dc2
cmp dword [ebp - 0x128], 0
jne 0x534dc2
cmp eax, 2
jle 0x534dc2
cmp byte [edx + eax], 0
jne 0x534dc2
dec eax
cmp eax, 2
jg 0x534db6
mov ecx, dword [ebp - 0xf8]
mov edi, dword [ebp - 0x118]
lea edx, [esi + 1]
add edx, eax
cmp dword [ebx + 0x84], 0
mov dword [ebp - 0x130], edx
jne 0x534edd
cmp edx, 3
jl 0x534edd
cmp edx, ecx
je 0x534edb
jg 0x534f14
mov ebx, dword [ebp - 0x124]
mov al, byte [ebx]
mov byte [ebp - 0x111], al
test al, 3
jne 0x534f14
sub ecx, edx
lea esi, [edx - 1]
mov dword [ebp - 0xf0], ecx
cmp ecx, 2
jl 0x534ee4
add ecx, 0xfffffffe
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
cmp esi, 1
jl 0x534e6e
mov eax, dword [ebp - 0x124]
lea ecx, [ebx + 2]
add eax, esi
mov edx, 0xfffffffe
add ecx, eax
sub edx, ebx
mov al, byte [edx + ecx]
lea ecx, [ecx - 1]
mov byte [ecx + 1], al
sub esi, 1
jne 0x534e56
mov esi, dword [ebp - 0x124]
mov al, byte [esi]
jmp 0x534e7a
mov al, byte [ebp - 0x111]
mov esi, dword [ebp - 0x124]
or al, 3
mov byte [edi], 0x41
mov byte [esi], al
test ebx, ebx
jle 0x534e9d
mov ecx, ebx
lea edi, [esi + 2]
mov edx, ecx
mov eax, 0xffffffff
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xf8]
sub al, 2
add al, bl
mov byte [esi + ebx + 2], al
mov eax, dword [ebp - 0x130]
add eax, 3
add eax, ebx
cmp eax, ecx
jge 0x534edb
sub ecx, eax
lea edi, [esi + eax]
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [ebp - 0xf8]
mov edx, ecx
mov eax, edx
jmp 0x534fa3
cmp esi, 1
jl 0x534efe
lea esp, [esp]
mov al, byte [ebx + esi]
mov byte [esi + edi], al
dec esi
cmp esi, 1
jge 0x534ef0
mov al, byte [ebx]
mov ecx, dword [ebp - 0xf8]
or al, 3
mov edx, ecx
mov byte [ebx], al
mov byte [edi], 1
mov eax, edx
jmp 0x534fa3
mov eax, 0xfffffffd
jmp 0x534fa3
mov eax, dword [ebx + 0xc4]
mov edx, 0x44d
mov ecx, dword [ebx + 0xb4]
test eax, eax
cmove eax, edx
test ecx, ecx
mov edx, 0x3e8
cmove ecx, edx
cmp esi, 0x64
mov edx, 0x3ea
cmovg ecx, edx
cmp esi, 0x32
jge 0x534f53
lea ecx, [edx - 2]
jmp 0x534f5b
cmp ecx, 0x3e8
jne 0x534f69
cmp eax, 0x44f
jle 0x534f7b
mov eax, 0x44f
jmp 0x534f85
cmp ecx, edx
jne 0x534f7b
cmp eax, 0x44e
jne 0x534f7b
mov eax, 0x44d
jmp 0x534f85
mov edx, 0x450
cmp eax, edx
cmovle eax, edx
push dword [ebx + 0x98]
mov edx, esi
push eax
call fcn.00532d10
mov ecx, dword [ebp - 0x124]
mov byte [ecx], al
mov eax, 1
add esp, 8
lea esp, [ebp - 0x1d4]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x68]
xor ecx, ebp
call fcn.0056eeb4
lea esp, [ebp + 0x6c]
pop ebp
ret