Function at 0x54a130
Capabilities:
Encrypt data using speck

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x67b10b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x588
push esi
mov esi, dword [ebx + 8]
lea eax, [esi + 0x500]
push edi
mov dword [eax], eax
mov dword [eax + 4], eax
push fcn.00404950
push fcn.0059c420
push 0x1d
lea eax, [esi + 0x544]
push 8
push eax
mov dword [ebp - 4], 0
mov dword [ebp - 0xa4], eax
call fcn.00665c1a
push 0x550d40
push fcn.00401b10
push 0x1c
lea eax, [esi + 0x62c]
push 8
push eax
mov byte [ebp - 4], 1
mov dword [ebp - 0x7c], eax
call fcn.00665c1a
lea eax, [esi + 0x70c]
mov byte [ebp - 4], 2
mov dword [ebp - 0x2c], eax
mov ecx, 0x3a
lea esp, [esp]
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
add eax, 0x10
dec ecx
jne 0x54a1d0
lea eax, [esi + 0xaac]
mov edx, 0x38
mov edi, edi
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
add eax, 0x10
dec edx
jne 0x54a1f0
lea eax, [esi + 0xe2c]
mov dword [ebp - 0x28], eax
mov ecx, 2
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
add eax, 0x10
dec ecx
jne 0x54a211
lea eax, [esi + 0xe4c]
mov dword [ebp - 0x3c], eax
mov ecx, 2
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
add eax, 0x10
dec ecx
jne 0x54a232
push fcn.00429490
push fcn.00429480
push 0x78
lea eax, [esi + 0xe6c]
push 0x18
push eax
mov dword [ebp - 0x78], eax
call fcn.00665c1a
lea eax, [esi + 0x19d8]
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [esi + 0x19d4], 1
mov byte [esi + 0x19b4], 0
push fcn.0058a1c0
push fcn.00401020
push 2
push 0x68
lea eax, [esi + 0x19e0]
push eax
mov byte [ebp - 4], 4
call fcn.00665c1a
push fcn.0058a1c0
push fcn.0040b040
push 2
push 0xa0
lea ecx, [esi + 0x1ac0]
push ecx
mov byte [ebp - 4], 5
call fcn.00665c1a
mov edx, dword [ebx + 0x10]
xor eax, eax
lea edi, [esi + 0x1c00]
mov dword [ebp - 0x1c], edi
mov ecx, 0x70
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 0xc]
mov dword [esi + 4], eax
mov dword [esi], edx
mov word [esi + 0xc], 0xffff
mov eax, dword [0x6e46b4]
mov ecx, eax
xor eax, 0x1d872b41
mov edx, eax
shr eax, 5
xor eax, edx
mov edi, eax
shl edi, 0x1b
xor edi, eax
xor edi, edx
mov edx, dword [0x7295d8]
and ecx, 7
mov dword [0x6e46b4], edi
mov dword [esi + 0x508], ecx
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
mov edi, dword [0x7295cc]
imul eax, eax, 0xc90
add eax, edi
test edx, edx
mov byte [ebp - 4], 6
mov dword [ebp - 0x18], 0
jle 0x54a364
mov edx, dword [0x7295d4]
jmp 0x54a340
mov edx, dword [ebp - 0x14]
mov edi, edi
mov edi, dword [ecx]
cmp dword [edx], edi
jne 0x54a34f
movsx edi, byte [ecx + 7]
cmp dword [edx + 4], edi
je 0x54a364
mov edi, dword [ebp - 0x18]
add edx, 0x40
inc edi
mov dword [ebp - 0x14], edx
cmp edi, dword [0x7295d8]
mov dword [ebp - 0x18], edi
jl 0x54a33b
mov dword [esi + 8], eax
mov ecx, dword [ecx + 0x490]
lea edx, [eax + 0x20]
mov eax, dword [ecx + 0x14]
test eax, eax
movsx ecx, word [ecx + 0x1c]
mov dword [ebp - 0x18], edx
lea ecx, [eax + ecx*8]
je 0x54a394
cmp eax, ecx
jae 0x54a394
cmp dword [eax], 0xeb0101e2
je 0x54a3dd
add eax, 8
cmp eax, ecx
jb 0x54a385
xor eax, eax
movsx edx, al
mov dword [ebp - 0x14], edx
push 0
push 1
fild dword [ebp - 0x14]
push str.BLURTEST
fmul dword [0x6bdfd8]
fmul dword [0x6bd9f8]
fstp dword [ebp - 0x20]
call fcn.0059aa50
add esp, 4
push eax
call fcn.0052a160
fld dword [ebp - 0x20]
add esp, 0xc
fchs
xor edx, edx
fstp dword [ebp - 0x24]
mov dword [esi + 0x1ab0], eax
mov dword [ebp - 0x38], edx
jmp 0x54a3f0
test eax, eax
je 0x54a394
mov eax, dword [eax + 4]
jmp 0x54a396
xor edx, edx
jmp 0x54a3f0
mov ecx, dword [ebp - 0x38]
lea eax, [ecx + ecx*4]
shl eax, 5
cmp ecx, edx
lea edi, [eax + esi]
mov al, 0x80
mov byte [edi + 0x1b40], al
mov byte [edi + 0x1b44], al
mov byte [edi + 0x1b48], al
mov byte [edi + 0x1b4c], al
mov byte [edi + 0x1b41], al
mov byte [edi + 0x1b45], al
mov byte [edi + 0x1b49], al
mov byte [edi + 0x1b4d], al
mov byte [edi + 0x1b42], al
mov byte [edi + 0x1b46], al
mov byte [edi + 0x1b4a], al
mov byte [edi + 0x1b4e], al
mov eax, 0x3f800000
mov dword [edi + 0x1b10], edx
mov dword [edi + 0x1b14], edx
mov dword [edi + 0x1b18], eax
mov dword [edi + 0x1b1c], eax
mov dword [edi + 0x1b20], edx
mov dword [edi + 0x1b24], eax
mov dword [edi + 0x1b34], edx
mov dword [edi + 0x1b38], eax
mov dword [edi + 0x1b3c], eax
mov dword [edi + 0x1b28], eax
mov dword [edi + 0x1b2c], eax
mov dword [edi + 0x1b30], eax
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0x108], 0
mov dword [ebp - 0x104], 0
mov dword [ebp - 0x100], 0
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xf4], 0
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xe4], eax
jne 0x54a542
lea ecx, [ebp - 0x120]
push ecx
lea edx, [ebp - 0x120]
push edx
mov ecx, 0x1999
call fcn.0040ac40
add esp, 8
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x20]
mov ecx, eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x60], ecx
mov eax, edx
mov ecx, edx
mov dword [ebp - 0xa0], edx
mov dword [ebp - 0x58], edx
lea edx, [ebp - 0x120]
mov dword [ebp - 0x50], eax
push edx
lea eax, [ebp - 0x70]
mov dword [ebp - 0x48], ecx
push eax
lea ecx, [ebp - 0x70]
push ecx
mov dword [ebp - 0x6c], 0xbc75c28f
mov dword [ebp - 0x64], 0x3f800000
mov dword [ebp - 0x9c], 0xbc75c28f
mov dword [ebp - 0x94], 0x3f800000
mov dword [ebp - 0x5c], 0xbc75c28f
mov dword [ebp - 0x54], 0x3f800000
mov dword [ebp - 0x4c], 0xbc75c28f
mov dword [ebp - 0x44], 0x3f800000
call fcn.0059fa63
lea edx, [ebp - 0x120]
push edx
lea eax, [ebp - 0xa0]
push eax
lea ecx, [ebp - 0xa0]
push ecx
call fcn.0059fa63
lea edx, [ebp - 0x120]
push edx
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x60]
push ecx
call fcn.0059fa63
lea edx, [ebp - 0x120]
push edx
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x50]
push ecx
call fcn.0059fa63
fld dword [ebp - 0xa0]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x70]
lea ecx, [eax + eax*4 + 0xd7]
shl ecx, 5
fstp dword [ecx + esi]
mov ecx, dword [ebp - 0x50]
mov dword [edi + 0x1ad0], edx
mov edx, dword [ebp - 0x60]
mov dword [edi + 0x1b00], edx
mov edx, dword [ebp - 0x6c]
mov dword [edi + 0x1af0], ecx
mov ecx, dword [ebp - 0x9c]
mov dword [edi + 0x1ad4], edx
mov edx, dword [ebp - 0x5c]
mov dword [edi + 0x1ae4], ecx
mov ecx, dword [ebp - 0x4c]
mov dword [edi + 0x1b04], edx
mov edx, dword [ebp - 0x68]
mov dword [edi + 0x1af4], ecx
mov ecx, dword [ebp - 0x98]
inc eax
cmp eax, 2
mov dword [edi + 0x1ad8], edx
mov edx, dword [ebp - 0x58]
mov dword [edi + 0x1ae8], ecx
mov ecx, dword [ebp - 0x48]
mov dword [edi + 0x1b08], edx
mov dword [edi + 0x1af8], ecx
mov dword [ebp - 0x38], eax
jl 0x54a3e6
mov edx, dword [esi + 4]
push 0
push edx
add esi, 0x40
call fcn.0055d980
mov eax, dword [ebx + 8]
mov ecx, dword [eax + 0x408]
mov edx, dword [ebp - 0x2c]
mov dword [edx], ecx
mov ecx, dword [eax + 0x40c]
mov edx, dword [eax + 0x410]
mov dword [eax + 0x71c], ecx
mov ecx, dword [eax + 0x418]
mov dword [eax + 0x73c], ecx
mov ecx, dword [eax + 0x41c]
mov dword [eax + 0x72c], edx
mov edx, dword [eax + 0x414]
mov dword [eax + 0x75c], ecx
mov ecx, dword [eax + 0x450]
mov dword [eax + 0x74c], edx
mov edx, dword [eax + 0x44c]
mov dword [eax + 0x78c], ecx
mov ecx, dword [eax + 0x424]
mov dword [eax + 0x77c], edx
mov edx, dword [eax + 0x420]
mov dword [eax + 0x86c], ecx
mov ecx, dword [eax + 0x42c]
mov dword [eax + 0x85c], edx
mov edx, dword [eax + 0x428]
mov dword [eax + 0x88c], ecx
mov ecx, dword [eax + 0x434]
mov dword [eax + 0x87c], edx
mov edx, dword [eax + 0x430]
mov dword [eax + 0x8ac], ecx
mov ecx, dword [eax + 0x43c]
mov dword [eax + 0x89c], edx
mov edx, dword [eax + 0x438]
mov dword [eax + 0x8cc], ecx
mov ecx, dword [eax + 0x444]
mov dword [eax + 0x8bc], edx
mov edx, dword [eax + 0x440]
mov dword [eax + 0x8ec], ecx
mov ecx, dword [ebp - 0x28]
mov esi, 0x17f9f794
mov dword [eax + 0x8dc], edx
mov dword [eax + 0x76c], 0x5799e60b
mov dword [eax + 0x79c], 0x7b220ddf
mov dword [eax + 0x7ac], 0x1b0763a0
mov dword [eax + 0x7bc], 0xe7e4ef49
mov dword [eax + 0x7cc], 0x4cdebfca
mov dword [eax + 0x7dc], 0x60f8b13c
mov dword [eax + 0x7ec], 0xab88f5d
mov dword [eax + 0x7fc], 0x90e09671
mov dword [eax + 0x80c], 0x13ee21f2
mov dword [eax + 0x81c], 0xd689a31b
mov dword [eax + 0x82c], 0xb8f3415c
mov dword [eax + 0x83c], 0x2433df4e
mov dword [eax + 0x84c], 0xf95d432f
mov dword [ecx], esi
mov edi, dword [ecx + 4]
mov edx, 0x85e9c79e
add esp, 8
cmp edi, edx
je 0x54a819
mov dword [ecx + 4], edx
mov dword [ecx + 8], 0xffffffff
mov edx, dword [eax + 0x410]
mov dword [eax + 0xe3c], edx
mov eax, dword [ebp - 0x3c]
mov dword [eax], esi
cmp dword [eax + 4], esi
je 0x54a839
mov dword [eax + 4], esi
mov dword [eax + 8], 0xffffffff
mov edi, dword [ebx + 8]
mov eax, dword [edi + 0x410]
mov dword [edi + 0xe5c], eax
mov eax, dword [edi + 4]
call fcn.0054c080
mov ecx, dword [0x7299d8]
mov esi, dword [edi + 0x418]
shl ecx, 4
mov eax, dword [ecx + 0x6e4654]
test eax, eax
je 0x54a887
push esi
push eax
call fcn.0059aa80
push 0
push 0
push eax
mov dword [ebp - 0x14], eax
call fcn.0052a160
add esp, 0x14
test eax, eax
je 0x54a887
mov esi, dword [ebp - 0x14]
push 0
push 0
push esi
call fcn.0052a160
add esp, 0xc
test eax, eax
je 0x54a89c
mov byte [eax + 0x54], 0
cmp esi, dword [edi + 0x740]
je 0x54a8b4
mov dword [edi + 0x740], esi
mov dword [edi + 0x744], 0xffffffff
push edi
call fcn.0054c670
mov esi, dword [ebx + 0xc]
push esi
push edi
call fcn.0054c140
mov ecx, dword [edi + 0x770]
mov eax, 0xa244d489
cmp ecx, eax
je 0x54a8e3
mov dword [edi + 0x770], eax
mov dword [edi + 0x774], 0xffffffff
lea eax, [edi + 0x20]
lea ecx, [edi + 0x10]
push eax
push ecx
call fcn.0059a410
xor edx, edx
add esi, 0x44c
add esp, 8
add edi, 0xe78
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x34], edi
lea ebx, [ebx]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
cmp eax, edx
je 0x54ab51
mov ecx, dword [eax + 0x24]
add eax, 0x20
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x38], eax
add edi, 0xfffffff8
mov dword [ebp - 0x14], 4
mov eax, dword [ebp - 0x38]
mov eax, dword [eax]
cmp eax, edx
mov dword [ebp - 0x3c], eax
je 0x54aa57
mov ecx, eax
mov dword [edi + 4], ecx
mov dword [edi + 0xc], edx
mov dword [edi + 0x10], edx
mov eax, dword [0x735914]
lea esi, [edi - 4]
mov dword [eax], esi
mov dword [0x735914], esi
mov ecx, dword [edi + 4]
cmp ecx, edx
mov dword [edi], eax
mov dword [esi], 0x735910
je 0x54a9bf
xor eax, eax
call fcn.005246a0
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x54a9bd
cmp eax, dword [edi + 8]
je 0x54a9bd
test eax, eax
mov ecx, dword [esi]
mov edx, dword [edi]
mov dword [edx], ecx
mov dword [ecx + 4], edx
je 0x54a9a4
mov edx, dword [eax + 0x8c]
lea ecx, [eax + 0x88]
mov dword [edx], esi
mov dword [ecx + 4], esi
mov dword [edi], edx
mov dword [esi], ecx
jmp 0x54a9ba
mov ecx, dword [0x735914]
mov dword [ecx], esi
mov dword [0x735914], esi
mov dword [edi], ecx
mov dword [esi], 0x735910
mov dword [edi + 8], eax
xor edx, edx
cmp dword [edi + 8], edx
jne 0x54aa88
cmp dword [edi + 4], edx
je 0x54a9d6
mov eax, dword [esi]
mov ecx, dword [edi]
mov dword [ecx], eax
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x28]
cmp eax, edx
mov dword [edi + 8], edx
mov dword [edi + 4], eax
mov dword [edi + 0xc], edx
mov dword [edi + 0x10], edx
je 0x54a9fe
mov eax, dword [0x735914]
mov dword [eax], esi
mov dword [0x735914], esi
mov dword [edi], eax
mov dword [esi], 0x735910
mov ecx, dword [edi + 4]
cmp ecx, edx
je 0x54aa57
xor eax, eax
call fcn.005246a0
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x54aa55
cmp eax, dword [edi + 8]
je 0x54aa55
test eax, eax
mov ecx, dword [esi]
mov edx, dword [edi]
mov dword [edx], ecx
mov dword [ecx + 4], edx
je 0x54aa3c
mov edx, dword [eax + 0x8c]
lea ecx, [eax + 0x88]
mov dword [edx], esi
mov dword [ecx + 4], esi
mov dword [edi], edx
mov dword [esi], ecx
jmp 0x54aa52
mov ecx, dword [0x735914]
mov dword [ecx], esi
mov dword [0x735914], esi
mov dword [edi], ecx
mov dword [esi], 0x735910
mov dword [edi + 8], eax
xor edx, edx
mov ecx, dword [ebp - 0x20]
cmp ecx, 0x13
jl 0x54aa90
cmp ecx, 0x1d
jg 0x54aa90
cmp ecx, 0x1a
lea eax, [ecx - 0x13]
jl 0x54aa6f
add eax, 0xfffffffc
mov ecx, dword [ebx + 8]
shl eax, 7
lea eax, [eax + ecx + 0xaac]
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], 8
jmp 0x54aa9d
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x28], eax
jmp 0x54aa57
mov ecx, dword [ebp - 0x2c]
mov dword [edi + 0xc], ecx
mov dword [edi + 0x10], 0x3a
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x14]
add ecx, 4
add edi, 0x18
dec eax
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x14], eax
jne 0x54a933
mov eax, dword [ebp - 0x20]
cmp eax, edx
jl 0x54ab51
cmp eax, 0xb
jg 0x54ab51
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
cmp eax, edx
je 0x54ab0a
fld dword [eax + 0x24]
mov ecx, dword [eax + 0x30]
fld dword [eax + 0x28]
mov edx, dword [eax + 0x34]
fld dword [eax + 0x20]
mov dword [ebp - 0x74], ecx
mov ecx, dword [eax + 0x38]
fstp dword [ebp - 0x60]
mov dword [ebp - 0x80], edx
fxch st(1)
mov edx, dword [ebp - 0x74]
fstp dword [ebp - 0x5c]
mov eax, dword [ebp - 0x80]
fstp dword [ebp - 0x58]
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], ecx
jmp 0x54ab34
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov ecx, dword [ebx + 8]
lea edx, [ebp - 0x50]
push edx
lea eax, [ebp - 0x60]
push eax
lea eax, [ecx + 0x20]
push eax
lea eax, [ecx + 0x10]
push eax
call fcn.0059a5e0
add esp, 0x10
xor edx, edx
mov edi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
add edi, 4
mov dword [ebp - 0x24], edi
mov edi, dword [ebp - 0x34]
inc eax
add edi, 0x60
cmp eax, 0x1e
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x34], edi
jl 0x54a910
mov esi, dword [ebx + 8]
fld dword [esi + 0x10]
mov ecx, dword [ebp - 0x18]
fsub dword [0x6bda14]
lea edx, [ebp - 0x190]
push ecx
fstp dword [esi + 0x10]
fld dword [esi + 0x14]
fsub dword [0x6bda14]
fstp dword [esi + 0x14]
fld dword [esi + 0x18]
fsub dword [0x6bda14]
fstp dword [esi + 0x18]
fld dword [esi + 0x20]
fadd dword [0x6bda14]
fstp dword [esi + 0x20]
fld dword [esi + 0x24]
fadd dword [0x6bda14]
fstp dword [esi + 0x24]
fld dword [esi + 0x28]
fadd dword [0x6bda14]
fstp dword [esi + 0x28]
mov eax, dword [0x76c3f0]
cmp eax, 3
jne 0x54abd9
push str._s_SHADOWFE
jmp 0x54abde
push str._s_SHADOWIG
push edx
call fcn.005986d0
lea eax, [ebp - 0x190]
push eax
call fcn.0059aa50
push 0
push 0
push eax
call fcn.0052a160
mov ecx, dword [ebp - 0x18]
add esp, 0x1c
push ecx
lea edx, [ebp - 0x190]
push str._s_NEON
push edx
mov dword [esi + 0x4b4], eax
call fcn.005986d0
lea eax, [ebp - 0x190]
push eax
call fcn.0059aa50
push 0
push 1
push eax
call fcn.0052a160
mov ecx, dword [esi + 4]
mov dword [esi + 0x4bc], eax
mov edi, dword [ecx + 0x61c]
xor eax, eax
add esp, 0x1c
cmp edi, eax
je 0x54af50
push 0x6b8d68
call fcn.0059aa50
mov ecx, dword [edi + 0x14]
movsx edx, word [edi + 0x1c]
add esp, 4
test ecx, ecx
mov dword [ebp - 0x30], ecx
lea edx, [ecx + edx*8]
je 0x54ac87
cmp ecx, edx
jae 0x54ac87
lea esp, [esp]
test eax, eax
je 0x54aed0
cmp dword [ecx], eax
je 0x54aed0
add ecx, 8
cmp ecx, edx
jb 0x54ac70
xor eax, eax
and eax, 0xff
push str.GREEN
mov dword [ebp - 0x30], eax
call fcn.0059aa50
movsx edx, word [edi + 0x1c]
mov ecx, dword [edi + 0x14]
add esp, 4
test ecx, ecx
lea edx, [ecx + edx*8]
mov dword [ebp - 0x14], edx
je 0x54acca
cmp ecx, edx
jae 0x54acca
test eax, eax
je 0x54aee0
cmp dword [ecx], eax
je 0x54aee0
add ecx, 8
cmp ecx, edx
jb 0x54acb3
xor eax, eax
and eax, 0xff
push str.BLUE
mov dword [ebp - 0x2c], eax
call fcn.0059aa50
movsx edx, word [edi + 0x1c]
mov ecx, dword [edi + 0x14]
add esp, 4
test ecx, ecx
lea edx, [ecx + edx*8]
mov dword [ebp - 0x14], edx
je 0x54ad0d
cmp ecx, edx
jae 0x54ad0d
test eax, eax
je 0x54aef0
cmp dword [ecx], eax
je 0x54aef0
add ecx, 8
cmp ecx, edx
jb 0x54acf6
xor eax, eax
and eax, 0xff
push str.ALPHA
mov dword [ebp - 0x28], eax
call fcn.0059aa50
movsx edx, word [edi + 0x1c]
mov ecx, dword [edi + 0x14]
add esp, 4
test ecx, ecx
lea edx, [ecx + edx*8]
mov dword [ebp - 0x14], edx
je 0x54ad57
cmp ecx, edx
jae 0x54ad57
lea esp, [esp]
test eax, eax
je 0x54af00
cmp dword [ecx], eax
je 0x54af00
add ecx, 8
cmp ecx, edx
jb 0x54ad40
xor eax, eax
and eax, 0xff
push str.RED2
mov dword [ebp - 0x80], eax
call fcn.0059aa50
movsx edx, word [edi + 0x1c]
mov ecx, dword [edi + 0x14]
add esp, 4
test ecx, ecx
lea edx, [ecx + edx*8]
mov dword [ebp - 0x14], edx
je 0x54ad9a
cmp ecx, edx
jae 0x54ad9a
test eax, eax
je 0x54af10
cmp dword [ecx], eax
je 0x54af10
add ecx, 8
cmp ecx, edx
jb 0x54ad83
xor eax, eax
and eax, 0xff
push str.GREEN2
mov dword [ebp - 0x74], eax
call fcn.0059aa50
movsx edx, word [edi + 0x1c]
mov ecx, dword [edi + 0x14]
add esp, 4
test ecx, ecx
lea edx, [ecx + edx*8]
mov dword [ebp - 0x14], edx
je 0x54addd
cmp ecx, edx
jae 0x54addd
test eax, eax
je 0x54af20
cmp dword [ecx], eax
je 0x54af20
add ecx, 8
cmp ecx, edx
jb 0x54adc6
xor eax, eax
and eax, 0xff
push str.BLUE2
mov dword [ebp - 0x3c], eax
call fcn.0059aa50
movsx edx, word [edi + 0x1c]
mov ecx, dword [edi + 0x14]
add esp, 4
test ecx, ecx
lea edx, [ecx + edx*8]
mov dword [ebp - 0x14], edx
je 0x54ae27
cmp ecx, edx
jae 0x54ae27
lea esp, [esp]
test eax, eax
je 0x54af30
cmp dword [ecx], eax
je 0x54af30
add ecx, 8
cmp ecx, edx
jb 0x54ae10
xor eax, eax
and eax, 0xff
push str.ALPHA2
mov dword [ebp - 0x14], eax
call fcn.0059aa50
mov ecx, dword [edi + 0x14]
movsx edx, word [edi + 0x1c]
add esp, 4
test ecx, ecx
lea edx, [ecx + edx*8]
je 0x54ae67
cmp ecx, edx
jae 0x54ae67
test eax, eax
je 0x54af40
cmp dword [ecx], eax
je 0x54af40
add ecx, 8
cmp ecx, edx
jb 0x54ae50
xor eax, eax
mov cx, word [ebp - 0x2c]
mov edi, dword [ebp - 0x30]
mov dx, word [ebp - 0x28]
mov word [esi + 0x4c2], cx
mov ecx, dword [ebp - 0x74]
sub ecx, edi
mov word [esi + 0x4c8], cx
mov ecx, dword [ebp - 0x3c]
mov word [esi + 0x4c0], di
sub ecx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x28]
mov word [esi + 0x4c4], dx
mov edx, dword [ebp - 0x80]
mov word [esi + 0x4ca], cx
mov ecx, dword [ebp - 0x14]
and eax, 0xff
sub eax, edx
sub ecx, edi
mov word [esi + 0x4ce], ax
mov word [esi + 0x4c6], dx
mov word [esi + 0x4cc], cx
xor eax, eax
jmp 0x54af88
test ecx, ecx
je 0x54ac87
mov eax, dword [ecx + 4]
jmp 0x54ac89
test ecx, ecx
je 0x54acca
mov eax, dword [ecx + 4]
jmp 0x54accc
test ecx, ecx
je 0x54ad0d
mov eax, dword [ecx + 4]
jmp 0x54ad0f
test ecx, ecx
je 0x54ad57
mov eax, dword [ecx + 4]
jmp 0x54ad59
test ecx, ecx
je 0x54ad9a
mov eax, dword [ecx + 4]
jmp 0x54ad9c
test ecx, ecx
je 0x54addd
mov eax, dword [ecx + 4]
jmp 0x54addf
test ecx, ecx
je 0x54ae27
mov eax, dword [ecx + 4]
jmp 0x54ae29
test ecx, ecx
je 0x54ae67
mov eax, dword [ecx + 4]
jmp 0x54ae69
mov word [esi + 0x4c0], ax
mov word [esi + 0x4c2], ax
mov word [esi + 0x4c4], ax
mov word [esi + 0x4c6], ax
mov word [esi + 0x4c8], ax
mov word [esi + 0x4ca], ax
mov word [esi + 0x4cc], ax
mov word [esi + 0x4ce], ax
push eax
push eax
push 0xbadb4475
call fcn.0052a160
mov dword [esi + 0x4b8], eax
mov eax, dword [esi + 0x4b4]
xor ecx, ecx
add esp, 0xc
cmp eax, ecx
je 0x54afb6
mov byte [eax + 0x54], cl
mov eax, dword [esi + 0x4b4]
mov byte [eax + 0x51], 2
mov eax, dword [esi + 0x4b8]
cmp eax, ecx
je 0x54afcd
mov byte [eax + 0x54], cl
mov edx, dword [esi + 0x4b8]
mov byte [edx + 0x51], 3
mov eax, dword [esi + 0x4bc]
cmp eax, ecx
je 0x54afe4
mov byte [eax + 0x54], cl
mov eax, dword [esi + 0x4bc]
mov byte [eax + 0x51], 4
mov eax, dword [esi]
cmp eax, ecx
je 0x54aff2
mov edi, dword [eax + 0x868]
jmp 0x54aff4
xor edi, edi
cmp edi, ecx
je 0x54b03e
fld dword [esi + 0x24]
mov ecx, dword [esi + 0x10]
fld dword [esi + 0x20]
mov edx, dword [ebp - 0x78]
fld dword [esi + 0x14]
mov dword [edi + 0x58], ecx
fstp dword [edi + 0x5c]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], 0x1e
fstp dword [edi + 0x60]
fstp dword [edi + 0x64]
lea ecx, [ecx]
mov eax, dword [ebp - 0x18]
push eax
push edi
call fcn.00568d00
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
add ecx, 0x60
dec eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], eax
jne 0x54b020
xor ecx, ecx
mov eax, dword [esi + 0x1058]
cmp eax, ecx
je 0x54b053
add eax, 0x70
cmp eax, ecx
je 0x54b055
fld dword [eax]
jmp 0x54b05b
xor eax, eax
fld dword [0x6bda00]
cmp eax, ecx
fstp dword [esi + 0x30]
je 0x54b067
fld dword [eax + 4]
jmp 0x54b06d
fld dword [0x6bda00]
cmp eax, ecx
fstp dword [esi + 0x34]
je 0x54b079
fld dword [eax + 8]
jmp 0x54b07f
fld dword [0x6bda00]
push esi
fstp dword [esi + 0x38]
call fcn.0054c850
mov eax, dword [ebx + 0xc]
cmp byte [eax + 0x424], 0xff
jne 0x54b09b
push 1
call fcn.0055c180
mov esi, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x1c]
lea edi, [esi + 0x70]
push edi
xor eax, eax
call fcn.005493f0
mov ecx, dword [ebp - 0x1c]
add esi, 0xa0
push esi
mov eax, 1
call fcn.005493f0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0xd0
push eax
mov eax, 2
call fcn.005493f0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x100
push eax
mov eax, 3
call fcn.005493f0
mov eax, dword [ebx + 0xc]
fld dword [eax + 0x100]
add eax, 0x100
fadd dword [edi]
lea ecx, [ebp - 0x60]
fld dword [eax + 4]
push ecx
mov ecx, dword [ebp - 0x1c]
fadd dword [edi + 4]
fld dword [eax + 8]
mov eax, 4
fadd dword [edi + 8]
fstp dword [ebp - 0x58]
fxch st(1)
fmul dword [0x6bda38]
fstp dword [ebp - 0x60]
fmul dword [0x6bda38]
fstp dword [ebp - 0x5c]
fld dword [ebp - 0x58]
fmul dword [0x6bda38]
fstp dword [ebp - 0x58]
call fcn.005493f0
mov eax, dword [ebx + 0xc]
fld dword [esi]
fadd dword [eax + 0xd0]
add eax, 0xd0
fld dword [eax + 4]
mov ecx, dword [ebp - 0x1c]
fadd dword [esi + 4]
fld dword [eax + 8]
lea edx, [ebp - 0x50]
fadd dword [esi + 8]
push edx
mov eax, 5
fstp dword [ebp - 0x48]
fxch st(1)
fmul dword [0x6bda38]
fstp dword [ebp - 0x50]
fmul dword [0x6bda38]
fstp dword [ebp - 0x4c]
fld dword [ebp - 0x48]
fmul dword [0x6bda38]
fstp dword [ebp - 0x48]
call fcn.005493f0
mov ecx, dword [ebp - 0x1c]
push edi
mov eax, 6
call fcn.005493f0
mov ecx, dword [ebp - 0x1c]
push esi
mov eax, 7
call fcn.005493f0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0xd0
push eax
mov eax, 8
call fcn.005493f0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0x100
push eax
mov eax, 9
call fcn.005493f0
mov ecx, dword [ebp - 0x1c]
push edi
mov eax, 0xa
call fcn.005493f0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x1c]
add eax, 0xd0
push eax
mov eax, 0xb
call fcn.005493f0
fld dword [ebp - 0x50]
fadd dword [ebp - 0x60]
mov ecx, dword [ebp - 0x1c]
fld dword [ebp - 0x4c]
lea eax, [ebp - 0x70]
fadd dword [ebp - 0x5c]
push eax
fld dword [ebp - 0x48]
mov eax, 0xc
fadd dword [ebp - 0x58]
fstp dword [ebp - 0x68]
fxch st(1)
fmul dword [0x6bda38]
fstp dword [ebp - 0x70]
fmul dword [0x6bda38]
fstp dword [ebp - 0x6c]
fld dword [ebp - 0x68]
fmul dword [0x6bda38]
fstp dword [ebp - 0x68]
call fcn.005493f0
fld dword [edi]
mov eax, dword [ebx + 0xc]
fsub dword [esi]
add eax, 0xd0
fstp dword [ebp - 0xd0]
fld dword [edi + 4]
fsub dword [esi + 4]
fstp dword [ebp - 0xcc]
fld dword [edi + 8]
fsub dword [esi + 8]
fstp dword [ebp - 0xc8]
fld dword [esi]
fsub dword [eax]
fstp dword [ebp - 0xc0]
fld dword [esi + 4]
fsub dword [eax + 4]
fstp dword [ebp - 0xbc]
fld dword [esi + 8]
lea ecx, [ebp - 0xc0]
push ecx
fsub dword [eax + 8]
lea edx, [ebp - 0xd0]
push edx
lea eax, [ebp - 0x90]
fstp dword [ebp - 0xb8]
push eax
call fcn.0059a0e0
lea ecx, [ebp - 0x90]
push ecx
lea edx, [ebp - 0x90]
push edx
call fcn.00599e10
mov eax, dword [ebx + 0xc]
fld dword [eax + 0x80]
add esp, 0x14
fld dword [ebp - 0x90]
lea ecx, [ebp - 0x70]
fmul st(1)
push ecx
mov ecx, dword [ebp - 0x1c]
mov eax, 0xd
fstp dword [ebp - 0x90]
fld dword [ebp - 0x8c]
fmul st(1)
fstp dword [ebp - 0x8c]
fld dword [ebp - 0x88]
fmul st(1)
fstp dword [ebp - 0x88]
fstp st(0)
fld dword [ebp - 0x90]
fadd dword [ebp - 0x70]
fstp dword [ebp - 0x70]
fld dword [ebp - 0x8c]
fadd dword [ebp - 0x6c]
fstp dword [ebp - 0x6c]
fld dword [ebp - 0x88]
fadd dword [ebp - 0x68]
fstp dword [ebp - 0x68]
call fcn.005493f0
mov eax, dword [ebx + 8]
xor edi, edi
xor esi, esi
add eax, 0xe5c
mov dword [ebp - 0x18], eax
jmp 0x54b337
xor edi, edi
mov ecx, dword [ebp - 0x18]
xor eax, eax
lea esp, [esp]
cmp eax, 0xe
ja case.0x54b34c.12
movzx edx, byte [eax + 0x54be8c]
jmp dword [edx*4 + 0x54be84]
cmp esi, edi
je 0x54b360
jle 0x54b373
mov edx, dword [ecx]
cmp edx, dword [ecx + 0x18]
je 0x54b373
lea edx, [ecx + 0x10]
mov dword [ebp + eax*4 - 0x150], edx
jmp 0x54b373
mov dword [ebp + eax*4 - 0x150], edi
inc eax
add ecx, 0x60
cmp eax, 0x1e
jl 0x54b340
xor edx, edx
xor ecx, ecx
mov eax, dword [ebp + ecx*4 - 0x150]
cmp eax, edi
je 0x54b3a2
mov eax, dword [eax + 0xc]
cmp eax, edi
je 0x54b3a2
cmp dword [eax + 0x84], edi
je 0x54b3a2
mov dword [ebp + edx*4 - 0x590], eax
inc edx
inc ecx
cmp ecx, 0x1e
jl 0x54b380
push edx
lea eax, [ebp - 0x590]
push eax
call fcn.00523db0
mov ecx, dword [ebp - 0x18]
add esp, 8
inc esi
add ecx, 0x18
cmp esi, 4
mov dword [ebp - 0x18], ecx
jl 0x54b335
mov edi, dword [ebx + 0xc]
mov ecx, dword [edi + 0x4c4]
xor esi, esi
cmp ecx, esi
mov dword [ebp - 0x14], esi
je 0x54b404
mov eax, dword [ecx + 0x14]
cmp eax, esi
movsx ecx, word [ecx + 0x1c]
lea ecx, [eax + ecx*8]
je 0x54b3ff
cmp eax, ecx
jae 0x54b3ff
nop
cmp dword [eax], 0x6ba02c05
je 0x54b435
add eax, 8
cmp eax, ecx
jb 0x54b3f0
xor eax, eax
mov dword [ebp - 0x14], eax
mov eax, dword [0x7358b8]
cmp eax, esi
je 0x54b410
lea esi, [eax - 4]
mov eax, 0x7358b8
call fcn.0040bc40
cmp esi, eax
mov dword [ebp - 0x24], eax
je 0x54b444
mov ecx, dword [ebp - 0x14]
cmp dword [esi + 0xc], ecx
je 0x54b44a
mov esi, dword [esi + 4]
test esi, esi
je 0x54b43e
add esi, 0xfffffffc
jmp 0x54b440
cmp eax, esi
je 0x54b3ff
mov eax, dword [eax + 4]
jmp 0x54b401
xor esi, esi
cmp esi, eax
jne 0x54b424
mov esi, dword [0x6e6228]
mov eax, dword [ebx + 8]
mov dword [eax + 0x4d0], esi
mov edx, dword [edi + 0x618]
test edx, edx
mov esi, 0x471a1dca
je 0x54b487
mov ecx, dword [edx + 0x14]
test ecx, ecx
movsx edx, word [edx + 0x1c]
lea edx, [ecx + edx*8]
je 0x54b483
cmp ecx, edx
jae 0x54b483
cmp dword [ecx], 0x6ba02c05
je 0x54b496
add ecx, 8
cmp ecx, edx
jb 0x54b474
xor ecx, ecx
mov esi, ecx
mov ecx, dword [0x7358b8]
test ecx, ecx
je 0x54b49f
add ecx, 0xfffffffc
jmp 0x54b4a1
test ecx, ecx
je 0x54b483
mov ecx, dword [ecx + 4]
jmp 0x54b485
xor ecx, ecx
mov edx, dword [ebp - 0x24]
cmp ecx, edx
je 0x54b4bf
cmp dword [ecx + 0xc], esi
je 0x54b4c5
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x54b4b9
add ecx, 0xfffffffc
jmp 0x54b4bb
xor ecx, ecx
cmp ecx, edx
jne 0x54b4a8
mov ecx, dword [0x6e6228]
mov dword [eax + 0x4d4], ecx
mov eax, dword [edi + 0x4ec]
mov ecx, dword [edi + 0x4e8]
mov edx, dword [edi + 0x4f0]
mov esi, dword [edi + 0x48c]
mov dword [ebp - 0x18], eax
mov eax, dword [edi + 0x4e4]
mov dword [ebp - 0x78], ecx
mov ecx, dword [edi + 0x490]
test ecx, ecx
mov dword [ebp - 0x30], eax
mov eax, dword [edi + 0x488]
mov edi, dword [edi + 0x478]
je 0x54b50e
cmp byte [ecx + 0x11], 1
jae 0x54b510
xor edx, edx
test eax, eax
je 0x54b51a
cmp byte [eax + 0x11], 1
jae 0x54b521
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x54b524
mov eax, dword [ebp - 0x18]
test esi, esi
je 0x54b52e
cmp byte [esi + 0x11], 1
jae 0x54b532
xor esi, esi
jmp 0x54b535
mov esi, dword [ebp - 0x78]
test edi, edi
je 0x54b53f
cmp byte [edi + 0x11], 1
jae 0x54b543
xor edi, edi
jmp 0x54b546
mov edi, dword [ebp - 0x30]
test edx, edx
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
je 0x54b59b
mov ecx, dword [edx + 0x14]
test ecx, ecx
movsx edx, word [edx + 0x1c]
lea eax, [ecx + edx*8]
je 0x54b593
cmp ecx, eax
jae 0x54b593
jmp 0x54b580
cmp dword [ecx], 0x6ba02c05
je 0x54b638
add ecx, 8
cmp ecx, eax
jb 0x54b580
xor ecx, ecx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x34], ecx
test eax, eax
je 0x54b5c9
mov ecx, dword [eax + 0x14]
test ecx, ecx
movsx eax, word [eax + 0x1c]
lea eax, [ecx + eax*8]
je 0x54b5c4
cmp ecx, eax
jae 0x54b5c4
cmp dword [ecx], 0x6ba02c05
je 0x54b648
add ecx, 8
cmp ecx, eax
jb 0x54b5b1
xor ecx, ecx
mov dword [ebp - 0x14], ecx
test esi, esi
je 0x54b5f4
mov ecx, dword [esi + 0x14]
test ecx, ecx
movsx edx, word [esi + 0x1c]
lea eax, [ecx + edx*8]
je 0x54b5ef
cmp ecx, eax
jae 0x54b5ef
nop
cmp dword [ecx], 0x6ba02c05
je 0x54b658
add ecx, 8
cmp ecx, eax
jb 0x54b5e0
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
test edi, edi
je 0x54b624
mov ecx, dword [edi + 0x14]
test ecx, ecx
movsx eax, word [edi + 0x1c]
lea eax, [ecx + eax*8]
je 0x54b61f
cmp ecx, eax
jae 0x54b61f
lea ebx, [ebx]
cmp dword [ecx], 0x6ba02c05
je 0x54b661
add ecx, 8
cmp ecx, eax
jb 0x54b610
xor ecx, ecx
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x34]
mov edi, dword [0x7358b8]
xor ecx, ecx
cmp eax, ecx
jne 0x54b66a
mov esi, dword [ebp - 0x24]
jmp 0x54b69d
test ecx, ecx
je 0x54b593
mov ecx, dword [ecx + 4]
jmp 0x54b595
test ecx, ecx
je 0x54b5c4
mov ecx, dword [ecx + 4]
jmp 0x54b5c6
test ecx, ecx
je 0x54b5ef
mov ecx, dword [ecx + 4]
jmp 0x54b5f1
test ecx, ecx
je 0x54b61f
mov ecx, dword [ecx + 4]
jmp 0x54b621
cmp edi, ecx
je 0x54b671
lea ecx, [edi - 4]
mov esi, dword [ebp - 0x24]
cmp ecx, esi
je 0x54b697
mov eax, dword [ebp - 0x34]
jmp 0x54b680
cmp dword [ecx + 0xc], eax
je 0x54b69d
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x54b691
add ecx, 0xfffffffc
jmp 0x54b693
xor ecx, ecx
cmp ecx, esi
jne 0x54b680
mov ecx, dword [0x6e6228]
mov eax, dword [ebp - 0x14]
test eax, eax
mov dword [ebp - 0x18], ecx
jne 0x54b6ab
xor edx, edx
jmp 0x54b6dd
test edi, edi
je 0x54b6b4
lea ecx, [edi - 4]
jmp 0x54b6b6
xor ecx, ecx
cmp ecx, esi
je 0x54b6d7
lea ebx, [ebx]
cmp dword [ecx + 0xc], eax
je 0x54b6e6
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x54b6d1
add ecx, 0xfffffffc
jmp 0x54b6d3
xor ecx, ecx
cmp ecx, esi
jne 0x54b6c0
mov edx, dword [0x6e6228]
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x54b6ea
jmp 0x54b71c
mov edx, ecx
jmp 0x54b6dd
test edi, edi
je 0x54b6f3
lea ecx, [edi - 4]
jmp 0x54b6f5
xor ecx, ecx
cmp ecx, esi
je 0x54b717
lea esp, [esp]
cmp dword [ecx + 0xc], eax
je 0x54b727
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x54b711
add ecx, 0xfffffffc
jmp 0x54b713
xor ecx, ecx
cmp ecx, esi
jne 0x54b700
mov eax, dword [0x6e6228]
mov edi, dword [ebp - 0x28]
test edi, edi
jne 0x54b72b
xor ecx, ecx
jmp 0x54b75d
mov eax, ecx
jmp 0x54b71c
mov ecx, dword [0x7358b8]
test ecx, ecx
je 0x54b73a
add ecx, 0xfffffffc
jmp 0x54b73c
xor ecx, ecx
cmp ecx, esi
je 0x54b757
cmp dword [ecx + 0xc], edi
je 0x54b75d
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x54b751
add ecx, 0xfffffffc
jmp 0x54b753
xor ecx, ecx
cmp ecx, esi
jne 0x54b740
mov ecx, dword [0x6e6228]
mov esi, dword [ebx + 8]
mov edi, dword [ebp - 0x18]
mov dword [esi + 0x4dc], edx
mov edx, esi
mov dword [esi + 0x4d8], edi
mov dword [esi + 0x4e0], eax
mov dword [esi + 0x4e4], ecx
call fcn.0054bfc0
fld dword [0x6bda00]
mov edi, dword [esi + 0x14d8]
xor eax, eax
test edi, edi
je 0x54b7d9
mov ecx, dword [edi + 0x80]
test ecx, ecx
movsx edx, byte [edi + 0x1b]
je 0x54b7c4
test edx, edx
je 0x54b7c4
test eax, eax
je 0x54b7c0
cmp eax, ecx
jb 0x54b7c4
lea edx, [edx + edx*4 - 5]
shl edx, 4
add edx, ecx
cmp eax, edx
jae 0x54b7c4
add eax, 0x50
jmp 0x54b7c6
mov eax, ecx
jmp 0x54b7c6
xor eax, eax
test eax, eax
je 0x54b7d9
cmp dword [eax], 0xea8dfb05
jne 0x54b790
fstp st(0)
fld dword [eax + 0x44]
jmp 0x54b790
mov eax, dword [0x72964c]
fstp dword [esi + 0x540]
push eax
call fcn.00599cb0
xor edi, edi
add esp, 4
cmp eax, edi
je 0x54b801
mov dword [eax + 0x10], edi
mov dword [eax + 4], edi
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
jmp 0x54b803
xor eax, eax
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ecx + 4]
mov dword [ecx + 4], eax
mov dword [edx], eax
mov dword [eax], ecx
mov eax, dword [esi]
cmp eax, edi
je 0x54baba
mov ecx, dword [0x72964c]
mov edi, dword [eax + 0x20]
push ecx
call fcn.00599cb0
add esp, 4
test eax, eax
je 0x54b866
fld dword [edi + 0x48]
fadd dword [edi + 0x18]
fmul dword [0x6bda38]
fld dword [edi + 0x44]
fadd dword [edi + 0x14]
fmul dword [0x6bda38]
fld dword [edi + 0x10]
fadd dword [edi + 0x40]
mov dword [eax + 0x10], 0
fmul dword [0x6bda38]
fstp dword [eax + 4]
fstp dword [eax + 8]
fstp dword [eax + 0xc]
jmp 0x54b868
xor eax, eax
mov edx, dword [esi + 0x638]
lea ecx, [esi + 0x634]
mov dword [ecx + 4], eax
mov dword [edx], eax
mov edx, dword [0x72964c]
push edx
mov dword [eax], ecx
call fcn.00599cb0
add esp, 4
test eax, eax
je 0x54b8cd
fld dword [edi + 0xa8]
fadd dword [edi + 0x78]
fmul dword [0x6bda38]
fld dword [edi + 0xa4]
fadd dword [edi + 0x74]
fmul dword [0x6bda38]
fld dword [edi + 0xa0]
fadd dword [edi + 0x70]
mov dword [eax + 0x10], 0
fmul dword [0x6bda38]
fstp dword [eax + 4]
fstp dword [eax + 8]
fstp dword [eax + 0xc]
jmp 0x54b8cf
xor eax, eax
mov edx, dword [esi + 0x640]
lea ecx, [esi + 0x63c]
mov dword [ecx + 4], eax
mov dword [edx], eax
mov dword [eax], ecx
mov eax, dword [0x72964c]
push eax
call fcn.00599cb0
add esp, 4
test eax, eax
je 0x54b933
fld dword [edi + 0xa8]
fadd dword [edi + 0x18]
fmul dword [0x6bda38]
fld dword [edi + 0xa4]
fadd dword [edi + 0x14]
fmul dword [0x6bda38]
fld dword [edi + 0x10]
fadd dword [edi + 0xa0]
mov dword [eax + 0x10], 0
fmul dword [0x6bda38]
fstp dword [eax + 4]
fstp dword [eax + 8]
fstp dword [eax + 0xc]
jmp 0x54b935
xor eax, eax
mov edx, dword [esi + 0x648]
lea ecx, [esi + 0x644]
mov dword [ecx + 4], eax
mov dword [edx], eax
mov dword [eax], ecx
mov ecx, dword [0x72964c]
push ecx
call fcn.00599cb0
add esp, 4
test eax, eax
je 0x54b991
fld dword [edi + 0x78]
fadd dword [edi + 0x48]
fmul dword [0x6bda38]
fld dword [edi + 0x74]
fadd dword [edi + 0x44]
fmul dword [0x6bda38]
fld dword [edi + 0x70]
fadd dword [edi + 0x40]
mov dword [eax + 0x10], 0
fmul dword [0x6bda38]
fstp dword [eax + 4]
fstp dword [eax + 8]
fstp dword [eax + 0xc]
jmp 0x54b993
xor eax, eax
mov edx, dword [esi + 0x650]
lea ecx, [esi + 0x64c]
mov dword [ecx + 4], eax
mov dword [edx], eax
mov edx, dword [0x72964c]
push edx
mov dword [eax], ecx
call fcn.00599cb0
add esp, 4
test eax, eax
je 0x54b9d4
fld dword [edi + 0x18]
fld dword [edi + 0x14]
fld dword [edi + 0x10]
mov dword [eax + 0x10], 0
fstp dword [eax + 4]
fstp dword [eax + 8]
fstp dword [eax + 0xc]
jmp 0x54b9d6
xor eax, eax
mov edx, dword [esi + 0x658]
lea ecx, [esi + 0x654]
mov dword [ecx + 4], eax
mov dword [edx], eax
mov dword [eax], ecx
mov eax, dword [0x72964c]
push eax
call fcn.00599cb0
add esp, 4
test eax, eax
je 0x54ba16
fld dword [edi + 0x48]
fld dword [edi + 0x44]
fld dword [edi + 0x40]
mov dword [eax + 0x10], 0
fstp dword [eax + 4]
fstp dword [eax + 8]
fstp dword [eax + 0xc]
jmp 0x54ba18
xor eax, eax
mov edx, dword [esi + 0x660]
lea ecx, [esi + 0x65c]
mov dword [ecx + 4], eax
mov dword [edx], eax
mov dword [eax], ecx
mov ecx, dword [0x72964c]
push ecx
call fcn.00599cb0
add esp, 4
test eax, eax
je 0x54ba59
fld dword [edi + 0x78]
fld dword [edi + 0x74]
fld dword [edi + 0x70]
mov dword [eax + 0x10], 0
fstp dword [eax + 4]
fstp dword [eax + 8]
fstp dword [eax + 0xc]
jmp 0x54ba5b
xor eax, eax
mov edx, dword [esi + 0x668]
lea ecx, [esi + 0x664]
mov dword [ecx + 4], eax
mov dword [edx], eax
mov edx, dword [0x72964c]
push edx
mov dword [eax], ecx
call fcn.00599cb0
add esp, 4
test eax, eax
je 0x54baa5
fld dword [edi + 0xa8]
fld dword [edi + 0xa4]
fld dword [edi + 0xa0]
mov dword [eax + 0x10], 0
fstp dword [eax + 4]
fstp dword [eax + 8]
fstp dword [eax + 0xc]
jmp 0x54baa7
xor eax, eax
mov edx, dword [esi + 0x670]
lea ecx, [esi + 0x66c]
mov dword [ecx + 4], eax
mov dword [edx], eax
mov dword [eax], ecx
xor eax, eax
mov dword [ebp - 0x14], eax
nop
mov ecx, dword [esi + 4]
mov dl, byte [eax + ecx + 0x6a4]
test dl, dl
je 0x54be36
lea edx, [eax + eax*2]
shl edx, 5
lea eax, [edx + esi + 0xe6c]
mov dword [ebp - 0x7c], eax
mov eax, dword [eax + 0xc]
test eax, eax
je 0x54be36
mov ecx, dword [eax + 0x80]
test ecx, ecx
movsx eax, byte [eax + 0x1b]
je 0x54bb03
test eax, eax
je 0x54bb03
mov eax, ecx
jmp 0x54bb05
xor eax, eax
test eax, eax
mov dword [ebp - 0x20], eax
je 0x54be36
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
cmp eax, 0x9db90133
mov dword [ebp - 0x1c], 0
ja 0x54bc48
je 0x54bca4
cmp eax, 0x494ed280
ja 0x54bbcc
je 0x54bd21
cmp eax, 0x1b0763a0
ja 0x54bb87
je 0x54bbc1
cmp eax, 0xab88f5d
ja 0x54bb71
je 0x54bbab
cmp eax, 0x2b52399
je 0x54bce4
cmp eax, 0x5f63788
jne 0x54bdf4
lea edi, [esi + 0x6ec]
jmp 0x54bd74
cmp eax, 0xbea251b
jne 0x54bdf4
lea edi, [esi + 0x6f4]
jmp 0x54bd74
cmp eax, 0x3df28f69
ja 0x54bbb6
je 0x54bd6e
cmp eax, 0x2f96d0fd
je 0x54bbab
cmp eax, 0x31a66786
je 0x54bd34
jmp 0x54bdf4
lea edi, [esi + 0x6b4]
jmp 0x54bd74
cmp eax, 0x3f68f920
jne 0x54bdf4
lea edi, [esi + 0x694]
jmp 0x54bd74
cmp eax, 0x68100815
ja 0x54bc20
je 0x54bc15
cmp eax, 0x60f8b13c
ja 0x54bbff
je 0x54bc0a
cmp eax, 0x4cdebfca
je 0x54bd66
cmp eax, 0x59a55db5
jne 0x54bdf4
lea edi, [esi + 0x674]
jmp 0x54bd74
cmp eax, 0x64b0bb1c
jne 0x54bdf4
lea edi, [esi + 0x6ac]
jmp 0x54bd74
lea edi, [esi + 0x684]
jmp 0x54bd74
cmp eax, 0x6ec7e79f
je 0x54bc3d
cmp eax, 0x725758bf
je 0x54bcb8
cmp eax, 0x7b220ddf
jne 0x54bdf4
lea edi, [esi + 0x68c]
jmp 0x54bd74
cmp eax, 0xc4ec23c8
ja 0x54bcf5
je 0x54bb66
cmp eax, 0xaa35c17f
ja 0x54bcc3
je 0x54bcb8
cmp eax, 0xa5b28001
ja 0x54bc99
je 0x54bd5e
cmp eax, 0xa2799c2b
je 0x54bd5e
cmp eax, 0xa532fc46
jne 0x54bdf4
lea eax, [esi + 0x6d4]
lea edi, [esi + 0x6bc]
mov dword [ebp - 0x1c], eax
jmp 0x54bd74
cmp eax, 0xa7e6ea53
jne 0x54bdf4
lea ecx, [esi + 0x6cc]
lea edi, [esi + 0x6bc]
mov dword [ebp - 0x1c], ecx
jmp 0x54bd74
lea edi, [esi + 0x6fc]
jmp 0x54bd74
cmp eax, 0xbcf8a18b
je 0x54bd5e
cmp eax, 0xbd7cf15e
je 0x54bd5e
cmp eax, 0xbf700a79
jne 0x54bdf4
lea edx, [esi + 0x6e4]
lea edi, [esi + 0x6c4]
mov dword [ebp - 0x1c], edx
jmp 0x54bd74
cmp eax, 0xdf066a41
ja 0x54bd45
je 0x54bd5e
cmp eax, 0xd09091c6
ja 0x54bd29
je 0x54bc85
cmp eax, 0xc52bf01b
je 0x54bb7c
cmp eax, 0xc805f7e0
jne 0x54bdf4
lea edi, [esi + 0x704]
jmp 0x54bd74
cmp eax, 0xd947f346
jne 0x54bdf4
lea ecx, [esi + 0x6dc]
lea edi, [esi + 0x6c4]
mov dword [ebp - 0x1c], ecx
jmp 0x54bd74
cmp eax, 0xe7e4ef49
je 0x54bd6e
cmp eax, 0xe898cfaa
je 0x54bd66
cmp eax, 0xf21be91e
jne 0x54bdf4
lea edi, [esi + 0x67c]
jmp 0x54bd74
lea edi, [esi + 0x6a4]
jmp 0x54bd74
lea edi, [esi + 0x69c]
test edi, edi
je 0x54bdb1
mov edx, dword [0x72964c]
push edx
call fcn.00599cb0
add esp, 4
test eax, eax
je 0x54bda5
mov ecx, dword [ebp - 0x20]
mov dword [eax + 0x10], ecx
mov edx, dword [ecx + 0x40]
mov dword [eax + 4], edx
mov edx, dword [ecx + 0x44]
mov dword [eax + 8], edx
mov ecx, dword [ecx + 0x48]
mov dword [eax + 0xc], ecx
jmp 0x54bda7
xor eax, eax
mov ecx, dword [edi + 4]
mov dword [edi + 4], eax
mov dword [ecx], eax
mov dword [eax], edi
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x54bdf4
mov edx, dword [0x72964c]
push edx
call fcn.00599cb0
add esp, 4
test eax, eax
je 0x54bde5
mov ecx, dword [ebp - 0x20]
mov dword [eax + 0x10], ecx
mov edx, dword [ecx + 0x40]
mov dword [eax + 4], edx
mov edx, dword [ecx + 0x44]
mov dword [eax + 8], edx
mov ecx, dword [ecx + 0x48]
mov dword [eax + 0xc], ecx
jmp 0x54bde7
xor eax, eax
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx + 4]
mov dword [edx + 4], eax
mov dword [ecx], eax
mov dword [eax], edx
mov edx, dword [ebp - 0x7c]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x54be36
mov ecx, dword [eax + 0x80]
test ecx, ecx
movsx eax, byte [eax + 0x1b]
je 0x54be29
test eax, eax
je 0x54be29
mov edx, dword [ebp - 0x20]
cmp edx, ecx
jb 0x54be29
lea eax, [eax + eax*4 - 5]
shl eax, 4
add eax, ecx
cmp edx, eax
jae 0x54be29
lea eax, [edx + 0x50]
jmp 0x54be2b
xor eax, eax
test eax, eax
mov dword [ebp - 0x20], eax
jne 0x54bb10
mov eax, dword [ebp - 0x14]
inc eax
cmp eax, 0x1d
mov dword [ebp - 0x14], eax
jle 0x54bac0
mov edi, dword [ebp - 0xa4]
mov esi, 0x6e4064
mov ecx, dword [esi]
push ecx
call fcn.00402a60
add esi, 8
add esp, 4
add edi, 8
cmp esi, 0x6e414c
jl 0x54be51
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebx + 8]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
mov dword fs:[0], ecx
pop ebx
ret 0xc