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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a0
push ebx
push esi
push edi
mov ebx, ecx
mov dword [ebp - 0x18], 0
push 0
lea ecx, [ebp - 0x16c]
mov dword [ebp - 0x4c], ebx
call fcn.00464790
mov edx, dword [ebx + 0x70]
lea ecx, [ebp - 0x19c]
mov esi, dword [ebp + 8]
push 1
push esi
mov edx, dword [edx + 0x2a90]
call fcn.004a5cb0
push 0
lea edx, [ebp - 0x16c]
lea ecx, [ebp - 0x19c]
call fcn.00414680
add esp, 0xc
test al, al
jne 0x53c050
push esi
push str.Failed_loading_effect:__s_n
call fcn.00473960
xorps xmm0, xmm0
add esp, 8
movlpd qword [ebp - 0x84], xmm0
mov esi, dword [ebp - 0x80]
mov edi, dword [ebp - 0x84]
jmp 0x53d673
push 0xc0
call fcn.005ab82c
mov edi, eax
add esp, 4
mov eax, dword [ebx + 0x70]
mov ecx, edi
add eax, 0x2af8
mov dword [ebp - 0x10], edi
push eax
call fcn.004f70d0
lea ecx, [edi + 0x30]
mov dword [edi], 0x73816c
call fcn.004f7190
mov esi, dword [ebp + 0x10]
lea ecx, [edi + 8]
mov dword [edi + 0x74], 0
xorps xmm0, xmm0
mov dword [edi + 0x78], 0
mov dword [edi + 0x7c], 0
mov dword [edi + 0x80], 0
mov dword [edi + 0x84], 0
mov dword [edi + 0x88], 0
mov dword [edi + 0x8c], 0
mov dword [edi + 0x90], 0
mov dword [edi + 0x94], 0
mov dword [edi + 0x70], ebx
mov dword [edi + 0x98], 1
movups xmmword [edi + 0x9c], xmm0
mov dword [edi + 0xac], 0
mov dword [edi + 0xb0], 0xf
mov byte [edi + 0x9c], 0
push esi
mov dword [edi + 0xb4], 0
mov dword [edi + 0xb8], 0
call fcn.00527da0
mov dword [ebp - 0xa0], edi
test esi, esi
je 0x53c159
push 0x734cae
push str.combos
mov ecx, esi
call fcn.00465fd0
mov ecx, ebx
mov edi, eax
push esi
push dword [ebp - 0x10]
mov dword [ebp - 0xc], edi
mov ecx, dword [ecx + 0x70]
add ecx, 0x29e0
call fcn.0050c2e0
jmp 0x53c163
call fcn.00464440
mov edi, eax
mov dword [ebp - 0xc], eax
push 0x737eec
push str.fbos
lea ecx, [ebp - 0x16c]
call fcn.00465fd0
mov edx, eax
lea eax, [ebp - 0x48]
push eax
mov ecx, edx
call fcn.00466e90
lea eax, [ebp - 0x84]
mov ecx, edx
push eax
call fcn.00466ed0
cmp byte [ebp - 0x44], 0
mov esi, dword [ebp - 0x48]
je 0x53c1a1
mov al, byte [ebp - 0x80]
jmp 0x53c1aa
cmp esi, dword [ebp - 0x84]
sete al
test al, al
jne 0x53c541
push 0x737ee6
add esi, 0x18
push str.conditions
mov ecx, esi
call fcn.00465fd0
mov edx, edi
mov ecx, eax
call fcn.0053b800
test al, al
je 0x53c534
push 0x720af0
push str.name
mov ecx, esi
call fcn.00465fd0
push 0x737efa
mov edi, eax
mov ecx, esi
push str.format
mov dword [ebp - 0x1c], edi
call fcn.00465fd0
cmp byte [edi + 8], 4
mov ebx, eax
jne 0x53c531
cmp byte [ebx + 8], 4
jne 0x53c531
push 0x737ca9
push str.scale
mov ecx, esi
call fcn.00465fd0
push 0x737ef3
push 0x737ef0
mov ecx, esi
mov dword [ebp - 0x54], eax
call fcn.00465fd0
push 0x7200c1
push str.width
mov ecx, esi
mov dword [ebp - 0x50], eax
call fcn.00465fd0
push 0x7200d2
push str.height
mov ecx, esi
mov dword [ebp - 0x40], eax
call fcn.00465fd0
push 0x737f0a
push str.unique
mov ecx, esi
mov dword [ebp - 0x7c], eax
call fcn.00465fd0
push 0x737f01
push str.clear
mov ecx, esi
mov dword [ebp - 0x78], eax
call fcn.00465fd0
mov esi, dword [ebx]
xorps xmm0, xmm0
xor edi, edi
mov dword [ebp + 8], eax
mov dword [ebp - 0x108], 0
mov dword [ebp - 0x104], 0xf
mov dword [ebp - 0x100], edi
movups xmmword [ebp - 0x118], xmm0
mov byte [ebp - 0x118], 0
movups xmmword [ebp - 0x128], xmm0
test esi, esi
je 0x53c2d3
mov eax, dword [ebx + 8]
shr eax, 8
test al, 1
je 0x53c2d3
add esi, 4
push esi
push str.rgba_backbuffer
call fcn.005cda34
add esp, 8
test eax, eax
jne 0x53c308
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + 0xd0]
and eax, 0x20000
neg eax
sbb eax, eax
and eax, 0xe
mov dword [ebp - 0x134], eax
jmp 0x53c388
push esi
push str.rgb_backbuffer
call fcn.005cda34
add esp, 8
test eax, eax
jne 0x53c33b
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + 0xd0]
and eax, 0x20000
neg eax
sbb eax, eax
and eax, 0xe
inc eax
mov dword [ebp - 0x134], eax
jmp 0x53c388
mov ecx, esi
mov dword [ebp - 0xec], edi
xorps xmm0, xmm0
mov dword [ebp - 0xe8], edi
movups xmmword [ebp - 0xfc], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x53c356
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0xfc]
call fcn.00414570
lea ecx, [ebp - 0xfc]
call fcn.0053a960
lea ecx, [ebp - 0xfc]
mov dword [ebp - 0x134], eax
call fcn.004143d0
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x138], edi
mov eax, dword [ecx + 8]
cmp al, 4
jne 0x53c3c6
mov ecx, dword [ecx]
test ecx, ecx
je 0x53c3a8
shr eax, 8
test al, 1
je 0x53c3a8
add ecx, 4
lea edx, [ebp - 0x128]
call fcn.00527f70
mov edi, dword [ebp - 0x100]
test al, al
je 0x53c3c6
or edi, 2
mov dword [ebp - 0x100], edi
mov ecx, dword [ebp - 0x1c]
lea eax, [ebp - 0x154]
push eax
call fcn.00465130
mov esi, eax
lea eax, [ebp - 0x118]
cmp eax, esi
je 0x53c42a
mov eax, dword [ebp - 0x104]
cmp eax, 0xf
jbe 0x53c402
push eax
push dword [ebp - 0x118]
lea eax, [ebp - 0x118]
push eax
call fcn.00414390
add esp, 0xc
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x118], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x108], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
lea ecx, [ebp - 0x154]
call fcn.004143d0
mov esi, dword [ebp - 0x54]
mov ecx, esi
call fcn.00466b80
test al, al
je 0x53c452
mov ecx, esi
call fcn.004652e0
mov byte [ebp - 0x130], al
jmp 0x53c459
mov byte [ebp - 0x130], 1
mov esi, dword [ebp - 0x50]
mov ecx, esi
call fcn.00466b80
test al, al
je 0x53c47c
mov ecx, esi
call fcn.004652e0
mov word [ebp - 0x12a], ax
mov ebx, 0xffff
jmp 0x53c488
mov ebx, 0xffff
mov word [ebp - 0x12a], bx
mov esi, dword [ebp - 0x40]
mov ecx, esi
call fcn.00466b80
test al, al
je 0x53c4a6
mov ecx, esi
call fcn.004652e0
mov word [ebp - 0x12e], ax
jmp 0x53c4ad
mov word [ebp - 0x12e], bx
mov esi, dword [ebp - 0x7c]
mov ecx, esi
call fcn.00466b80
test al, al
je 0x53c4cb
mov ecx, esi
call fcn.004652e0
mov word [ebp - 0x12c], ax
jmp 0x53c4d2
mov word [ebp - 0x12c], bx
mov eax, dword [ebp - 0x78]
cmp byte [eax + 8], 5
jne 0x53c4ef
mov ecx, eax
call fcn.00465720
test al, al
je 0x53c4ef
or edi, 1
mov dword [ebp - 0x100], edi
mov ebx, dword [ebp - 0x10]
lea ecx, [ebp - 0x138]
push ecx
mov eax, dword [ebx + 0x84]
cmp eax, dword [ebx + 0x88]
je 0x53c51a
mov edx, eax
call fcn.005451f0
add esp, 4
add dword [ebx + 0x84], 0x3c
jmp 0x53c526
push eax
lea ecx, [ebx + 0x80]
call fcn.005449f0
lea ecx, [ebp - 0x138]
call fcn.004f91c0
mov edi, dword [ebp - 0xc]
lea ecx, [ebp - 0x48]
call fcn.00428d00
jmp 0x53c193
push 0x734d1e
push str.passes
lea ecx, [ebp - 0x16c]
call fcn.00465fd0
xor ebx, ebx
mov dword [ebp - 0x1c], eax
mov ecx, eax
mov dword [ebp - 0x94], ebx
call fcn.00465800
test eax, eax
je 0x53cfba
mov ecx, dword [ebp - 0x1c]
push ebx
call fcn.00465b20
mov ebx, eax
push 0x737ee6
push str.conditions
mov ecx, ebx
mov dword [ebp + 8], ebx
call fcn.00465fd0
mov edx, edi
mov ecx, eax
call fcn.0053b800
test al, al
je 0x53cf9d
push 0
lea ecx, [ebp - 0x154]
call fcn.00464790
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x53c5ed
push 0x734d1e
push str.passes
mov ecx, esi
call fcn.00465fd0
cmp byte [eax + 8], 6
jne 0x53c5ed
push 0x734d1e
push str.passes
mov ecx, esi
call fcn.00465fd0
push dword [ebp - 0x94]
mov ecx, eax
call fcn.00465b20
mov edi, eax
jmp 0x53c5f3
lea edi, [ebp - 0x154]
push 0x734f3c
push str.material
mov ecx, ebx
call fcn.00465fd0
mov esi, eax
xor ebx, ebx
or al, 0xff
mov dword [ebp - 0xbc], ebx
mov dword [ebp - 0x38], eax
mov byte [ebp - 0xb4], al
or al, al
mov dword [ebp - 0x3c], eax
mov byte [ebp - 0xb3], al
mov eax, 4
mov dword [ebp - 0xb8], ebx
mov dword [ebp - 8], eax
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0xa8], ebx
mov dword [ebp - 0xa4], ebx
cmp byte [esi + 8], al
jne 0x53c6c0
mov ecx, dword [ebp - 0x4c]
push edi
mov eax, dword [ecx]
call dword [eax + 0x60]
mov eax, dword [ebp - 0x4c]
mov ecx, dword [esi]
mov edx, dword [eax + 0x70]
test ecx, ecx
je 0x53c671
mov eax, dword [esi + 8]
shr eax, 8
test al, 1
je 0x53c671
add ecx, 4
push edi
push ecx
lea ecx, [edx + 0x2968]
call fcn.004f5ea0
mov dword [ebp - 0xb8], eax
test eax, eax
je 0x53c6c0
test byte [eax + 0x170], 2
je 0x53c69b
mov ecx, dword [ebp - 0x10]
or dword [ecx + 0x98], 2
mov ecx, dword [eax + 0x15c]
test ecx, ecx
je 0x53c6c0
mov eax, dword [ecx]
call dword [eax + 0xc]
test al, 4
mov ecx, 5
mov eax, dword [ebp - 8]
cmovne eax, ecx
mov dword [ebp - 8], eax
mov dword [ebp - 0xb0], eax
mov edi, dword [ebp + 8]
mov ecx, edi
push 0x737f3b
push str.command
call fcn.00465fd0
cmp byte [eax + 8], 4
jne 0x53c761
push 0x737f3b
push str.command
mov ecx, edi
call fcn.00465fd0
lea ecx, [ebp - 0x74]
push ecx
mov ecx, eax
call fcn.00465130
mov esi, dword [ebp - 0x60]
lea ecx, [ebp - 0x74]
mov edi, dword [ebp - 0x74]
cmp esi, 0xf
mov edx, dword [ebp - 0x64]
push 4
cmova ecx, edi
push str.copy
call fcn.004108e0
add esp, 8
test al, al
je 0x53c72b
mov dword [ebp - 0xbc], 1
jmp 0x53c756
mov edx, dword [ebp - 0x64]
lea ecx, [ebp - 0x74]
cmp esi, 0xf
push 4
cmova ecx, edi
push str.swap
call fcn.004108e0
add esp, 8
test al, al
mov eax, 2
cmovne ebx, eax
mov dword [ebp - 0xbc], ebx
lea ecx, [ebp - 0x74]
call fcn.004143d0
mov edi, dword [ebp + 8]
push 0x737f32
push str.target
mov ecx, edi
call fcn.00465fd0
push 0x7210d2
push str.source
mov ecx, edi
mov esi, eax
call fcn.00465fd0
cmp byte [esi + 8], 4
mov edi, eax
mov ebx, dword [ebp - 0x18]
jne 0x53c7a0
lea eax, [ebp - 0x34]
mov ecx, esi
push eax
or ebx, 1
call fcn.00465130
jmp 0x53c7bf
xorps xmm0, xmm0
mov dword [ebp - 0x64], 0
movups xmmword [ebp - 0x74], xmm0
or ebx, 2
mov dword [ebp - 0x60], 0xf
mov byte [ebp - 0x74], 0
lea eax, [ebp - 0x74]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0xfc], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0xec], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
test bl, 2
je 0x53c7f7
lea ecx, [ebp - 0x74]
and ebx, 0xfffffffd
call fcn.004143d0
test bl, 1
je 0x53c807
lea ecx, [ebp - 0x34]
and ebx, 0xfffffffe
call fcn.004143d0
cmp byte [edi + 8], 4
jne 0x53c820
lea eax, [ebp - 0x34]
or ebx, 4
push eax
mov ecx, edi
mov dword [ebp - 0x18], ebx
call fcn.00465130
jmp 0x53c842
xorps xmm0, xmm0
mov dword [ebp - 0x64], 0
or ebx, 8
mov dword [ebp - 0x60], 0xf
movups xmmword [ebp - 0x74], xmm0
mov dword [ebp - 0x18], ebx
lea eax, [ebp - 0x74]
mov byte [ebp - 0x74], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x184], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x174], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
test bl, 8
je 0x53c87d
and ebx, 0xfffffff7
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x18], ebx
call fcn.004143d0
test bl, 4
je 0x53c890
and ebx, 0xfffffffb
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x18], ebx
call fcn.004143d0
mov eax, dword [ebp - 0x10]
xor ebx, ebx
mov ecx, dword [ebp - 0xfc]
mov dword [ebp - 0x54], ecx
mov edi, dword [eax + 0x80]
mov eax, dword [eax + 0x84]
sub eax, edi
sar eax, 2
imul eax, eax, 0xeeeeeeef
mov dword [ebp - 0x40], eax
test eax, eax
mov eax, dword [ebp - 0x184]
mov dword [ebp - 0x50], eax
je 0x53c96a
add edi, 0x20
mov esi, edi
nop
cmp dword [ebp - 0xe8], 0xf
lea eax, [ebp - 0xfc]
cmova eax, ecx
cmp dword [esi + 0x14], 0xf
mov ecx, esi
jbe 0x53c8ea
mov ecx, dword [esi]
push dword [ebp - 0xec]
mov edx, dword [esi + 0x10]
push eax
call fcn.004108e0
mov edx, dword [ebp - 0x38]
add esp, 8
test al, al
movzx ecx, bl
movzx edx, dl
lea eax, [ebp - 0x184]
cmovne edx, ecx
cmp dword [ebp - 0x170], 0xf
mov dword [ebp - 0x38], edx
mov ecx, edi
cmova eax, dword [ebp - 0x50]
cmp dword [edi + 0x14], 0xf
mov byte [ebp - 0xb4], dl
jbe 0x53c92e
mov ecx, dword [edi]
push dword [ebp - 0x174]
mov edx, dword [edi + 0x10]
push eax
call fcn.004108e0
mov edx, dword [ebp - 0x3c]
add esp, 8
movzx ecx, bl
test al, al
movzx edx, dl
cmovne edx, ecx
mov ecx, dword [ebp - 0x54]
inc ebx
mov dword [ebp - 0x3c], edx
add esi, 0x3c
mov byte [ebp - 0xb3], dl
add edi, 0x3c
cmp ebx, dword [ebp - 0x40]
jb 0x53c8d0
mov esi, dword [ebp + 8]
mov ecx, esi
push 0x737f4b
push str.compose
call fcn.00465fd0
cmp byte [eax + 8], 5
jne 0x53c9a4
mov ecx, eax
call fcn.00465720
test al, al
je 0x53c9a4
mov eax, dword [ebp - 8]
or eax, 2
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0x10]
inc dword [eax + 0xb4]
push 0x737f40
push str.bind
mov ecx, esi
call fcn.00465fd0
mov edx, eax
movzx eax, byte [edx + 8]
cmp eax, 6
jne 0x53cecc
sub eax, eax
je 0x53c9cd
sub eax, 1
jne 0x53c9db
mov eax, dword [edx]
test eax, eax
je 0x53c9db
mov eax, dword [eax]
xor cl, cl
mov eax, dword [eax]
jmp 0x53c9df
xor eax, eax
mov cl, 1
mov edi, dword [edx]
mov ebx, dword [ebp - 0xc]
mov byte [ebp - 0x44], cl
mov dword [ebp - 0x48], eax
test edi, edi
je 0x53c9f4
mov edi, dword [edi]
xor dl, dl
jmp 0x53c9fb
xor edi, edi
mov dword [ebp - 0xc], ebx
mov dl, 1
mov byte [ebp - 0x11], dl
nop
test cl, cl
je 0x53ca08
mov cl, dl
jmp 0x53ca0d
cmp eax, edi
sete cl
test cl, cl
jne 0x53cecc
lea esi, [eax + 0x18]
push 0x720af0
push str.name
mov ecx, esi
call fcn.00465fd0
push 0x737f5d
push str.index
mov ecx, esi
mov dword [ebp - 0x40], eax
call fcn.00465fd0
cmp byte [esi + 8], 7
mov ecx, eax
mov dword [ebp - 0x5c], ecx
jne 0x53ceb3
mov eax, dword [ebp - 0x40]
cmp byte [eax + 8], 4
jne 0x53ceb3
movzx eax, byte [ecx + 8]
cmp eax, 1
je 0x53ca70
cmp eax, 2
je 0x53ca70
cmp eax, 3
jne 0x53ceb3
push 0x737ee6
push str.conditions
mov ecx, esi
call fcn.00465fd0
mov edx, eax
movzx eax, byte [edx + 8]
cmp eax, 6
jne 0x53cddb
sub eax, eax
je 0x53ca99
sub eax, 1
jne 0x53caa7
mov eax, dword [edx]
test eax, eax
je 0x53caa7
mov eax, dword [eax]
xor cl, cl
mov eax, dword [eax]
jmp 0x53caab
xor eax, eax
mov cl, 1
mov esi, dword [edx]
mov byte [ebp - 0x98], cl
mov dword [ebp - 0x9c], eax
test esi, esi
je 0x53cac3
mov esi, dword [esi]
xor dl, dl
jmp 0x53caca
xor esi, esi
mov dword [ebp - 0xc], ebx
mov dl, 1
mov byte [ebp + 0xb], dl
nop dword [eax]
test cl, cl
je 0x53cad8
mov cl, dl
jmp 0x53cadd
cmp eax, esi
sete cl
test cl, cl
jne 0x53cddb
add eax, 0x18
mov dword [ebp - 0x58], eax
cmp byte [eax + 8], 7
jne 0x53cd1f
lea ecx, [ebp - 0x90]
mov bl, 1
push ecx
mov ecx, eax
mov dword [ebp - 8], ebx
call fcn.00466a30
mov eax, dword [ebp - 0x90]
mov ecx, eax
mov edx, dword [ebp - 0x8c]
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], eax
cmp ecx, edx
je 0x53cca8
cmp dword [ecx + 0x14], 0xf
xorps xmm0, xmm0
mov ebx, dword [ecx + 0x10]
mov eax, ecx
movups xmmword [ebp - 0x34], xmm0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x38], ecx
jbe 0x53cb4c
mov eax, dword [ecx]
mov dword [ebp - 0x38], eax
cmp ebx, 0x7fffffff
ja 0x53d6dc
cmp ebx, 0xf
ja 0x53cb70
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], 0xf
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x34], xmm0
jmp 0x53cbbf
mov eax, ebx
or eax, 0xf
cmp eax, 0x7fffffff
jbe 0x53cb83
mov eax, 0x7fffffff
jmp 0x53cb8e
cmp eax, 0x16
mov ecx, 0x16
cmovb eax, ecx
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.00414510
mov ecx, eax
mov dword [ebp - 0x24], ebx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x20], eax
lea eax, [ebx + 1]
push eax
push dword [ebp - 0x38]
mov dword [ebp - 0x34], ecx
push ecx
call fcn.005c3580
mov ebx, dword [ebp - 0x24]
add esp, 0x14
cmp dword [ebp - 0x20], 0xf
lea ecx, [ebp - 0x34]
lea eax, [ebp - 0x34]
cmova ecx, dword [ebp - 0x34]
add ecx, ebx
cmp dword [ebp - 0x20], 0xf
push ecx
cmova eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
push eax
call fcn.00466230
mov ecx, eax
mov dword [ebp - 0x3c], ecx
test ecx, ecx
jne 0x53cbf4
call fcn.00464440
mov ecx, eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0xc]
cmp byte [eax + 8], 7
jne 0x53cd73
cmp dword [ebp - 0x20], 0xf
lea ecx, [ebp - 0x34]
lea eax, [ebp - 0x34]
cmova ecx, dword [ebp - 0x34]
add ecx, dword [ebp - 0x24]
cmp dword [ebp - 0x20], 0xf
push ecx
cmova eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0xc]
push eax
call fcn.00466230
mov edx, eax
mov dword [ebp - 0x38], edx
test edx, edx
jne 0x53cc35
call fcn.00464440
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x3c]
movzx eax, byte [ecx + 8]
cmp eax, 1
je 0x53cd3e
cmp eax, 2
je 0x53cd3e
cmp eax, 3
je 0x53cd3e
mov ecx, dword [ebp - 0x20]
cmp ecx, 0xf
jbe 0x53cc8b
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x53cc81
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x53d6e6
push ecx
push edx
call fcn.005ab85c
add esp, 8
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0x8c]
add ecx, 0x18
mov dword [ebp - 0x78], ecx
cmp ecx, edx
jne 0x53cb24
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x53cd17
push ecx
mov ecx, eax
call fcn.0040f490
mov eax, dword [ebp - 0x88]
add esp, 4
mov edx, dword [ebp - 0x7c]
sub eax, edx
sar eax, 3
imul eax, eax, 0xaaaaaaab
lea ecx, [eax + eax*2]
mov eax, edx
shl ecx, 3
cmp ecx, 0x1000
jb 0x53ccef
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x53d6e6
push ecx
push edx
call fcn.005ab85c
add esp, 8
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x88], 0
test bl, bl
je 0x53ceb3
lea ecx, [ebp - 0x9c]
call fcn.00428d00
mov cl, byte [ebp - 0x98]
mov eax, dword [ebp - 0x9c]
mov dl, byte [ebp + 0xb]
jmp 0x53cad0
call fcn.004652e0
mov ecx, dword [ebp - 0x38]
mov ebx, eax
movzx eax, byte [ecx + 8]
cmp eax, 1
je 0x53cd63
cmp eax, 2
je 0x53cd63
cmp eax, 3
je 0x53cd63
test ebx, ebx
je 0x53cc57
call fcn.004652e0
cmp eax, ebx
je 0x53cd9b
xor bl, bl
mov dword [ebp - 8], ebx
jmp 0x53cd9e
movzx eax, byte [ecx + 8]
cmp eax, 1
je 0x53cd86
cmp eax, 2
je 0x53cd86
cmp eax, 3
jne 0x53cd9b
call fcn.004652e0
mov edx, dword [ebp - 8]
xor ecx, ecx
test eax, eax
movzx edx, dl
cmovne edx, ecx
mov dword [ebp - 8], edx
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
cmp ecx, 0xf
jbe 0x53cc8e
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x53cdcc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x53d6e6
push ecx
push edx
call fcn.005ab85c
add esp, 8
jmp 0x53cc8e
mov ecx, dword [ebp - 0x5c]
call fcn.004652e0
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x80], eax
lea eax, [ebp - 0x74]
push eax
mov dword [ebp - 0x84], 0xffffffff
call fcn.00465130
mov eax, dword [ebp - 0x10]
xor ebx, ebx
mov ecx, dword [ebp - 0x74]
mov dword [ebp + 8], ecx
mov esi, dword [eax + 0x80]
mov eax, dword [eax + 0x84]
sub eax, esi
sar eax, 2
imul eax, eax, 0xeeeeeeef
mov dword [ebp - 0x5c], eax
test eax, eax
je 0x53ce6b
add esi, 0x20
nop dword [eax + eax]
cmp dword [ebp - 0x60], 0xf
lea eax, [ebp - 0x74]
cmova eax, ecx
cmp dword [esi + 0x14], 0xf
mov ecx, esi
jbe 0x53ce44
mov ecx, dword [esi]
push dword [ebp - 0x64]
mov edx, dword [esi + 0x10]
push eax
call fcn.004108e0
add esp, 8
test al, al
jne 0x53ce65
mov ecx, dword [ebp + 8]
inc ebx
add esi, 0x3c
cmp ebx, dword [ebp - 0x5c]
jb 0x53ce30
jmp 0x53ce6b
mov dword [ebp - 0x84], ebx
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0xac]
call fcn.004e0af0
mov eax, dword [ebp - 0x60]
cmp eax, 0xf
jbe 0x53ceb3
mov edx, dword [ebp + 8]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x53cea9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x53d6e6
push ecx
push edx
call fcn.005ab85c
add esp, 8
lea ecx, [ebp - 0x48]
call fcn.00428d00
mov cl, byte [ebp - 0x44]
mov eax, dword [ebp - 0x48]
mov ebx, dword [ebp - 0xc]
mov dl, byte [ebp - 0x11]
jmp 0x53ca00
mov ebx, dword [ebp - 0x10]
lea ecx, [ebp - 0xbc]
push ecx
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x7c]
je 0x53ceee
mov edx, eax
call fcn.00545300
add esp, 4
add dword [ebx + 0x78], 0x1c
jmp 0x53cef7
push eax
lea ecx, [ebx + 0x74]
call fcn.00544b90
mov eax, dword [ebp - 0x170]
cmp eax, 0xf
jbe 0x53cf30
mov edx, dword [ebp - 0x50]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x53cf26
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x53d6e6
push ecx
push edx
call fcn.005ab85c
add esp, 8
mov eax, dword [ebp - 0xe8]
cmp eax, 0xf
jbe 0x53cf69
mov edx, dword [ebp - 0x54]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x53cf5f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x53d6e6
push ecx
push edx
call fcn.005ab85c
add esp, 8
lea ecx, [ebp - 0xac]
call fcn.00427590
lea ecx, [ebp - 0x154]
call fcn.00465f40
mov eax, dword [ebp - 0x148]
xorps xmm0, xmm0
movlpd qword [ebp - 0x154], xmm0
test eax, eax
je 0x53cf9a
push eax
call fcn.004672a0
mov edi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x1c]
inc ebx
mov dword [ebp - 0x94], ebx
call fcn.00465800
cmp ebx, eax
jb 0x53c570
mov edi, dword [ebp - 0x10]
xor ebx, ebx
mov esi, dword [edi + 0x78]
mov eax, esi
mov edx, dword [edi + 0x74]
sub eax, edx
sar eax, 2
imul eax, eax, 0xb6db6db7
test eax, eax
je 0x53d053
xor edi, edi
nop dword [eax]
mov eax, esi
lea ecx, [ebx + 1]
sub eax, edx
sar eax, 2
imul eax, eax, 0xb6db6db7
cmp ecx, eax
jae 0x53d029
sub esi, edx
lea eax, [edi + 0x1c]
sar esi, 2
imul esi, esi, 0xb6db6db7
add eax, edx
cmp dword [eax], 0
je 0x53d013
inc ecx
add eax, 0x1c
cmp ecx, esi
jb 0x53d004
jmp 0x53d029
cmp byte [eax + 8], 0
mov ecx, dword [edi + edx + 0xc]
jge 0x53d022
or ecx, 4
jmp 0x53d025
and ecx, 0xfffffffb
mov dword [edi + edx + 0xc], ecx
cmp dword [edi + edx], 0
mov eax, dword [ebp - 0x10]
jne 0x53d038
mov dword [eax + 0xb8], ebx
mov esi, dword [eax + 0x78]
inc ebx
mov edx, dword [eax + 0x74]
add edi, 0x1c
mov eax, esi
sub eax, edx
sar eax, 2
imul eax, eax, 0xb6db6db7
cmp ebx, eax
jb 0x53cfe0
push 0x737f55
push str.functions
lea ecx, [ebp - 0x16c]
call fcn.00465fd0
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x5c], eax
push ecx
mov ecx, eax
call fcn.00466a30
mov eax, dword [ebp - 0x8c]
xor ecx, ecx
mov edx, dword [ebp - 0x90]
sub eax, edx
sar eax, 3
imul eax, eax, 0xaaaaaaab
mov dword [ebp + 8], ecx
mov dword [ebp - 0x40], eax
test eax, eax
je 0x53d5f8
lea eax, [ecx + ecx*2]
mov dword [ebp - 0x24], 0
lea edi, [edx + eax*8]
mov dword [ebp - 0x20], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x34], xmm0
cmp dword [edi + 0x14], 0xf
mov esi, dword [edi + 0x10]
jbe 0x53d0c6
mov edi, dword [edi]
cmp esi, 0x7fffffff
ja 0x53d6dc
cmp esi, 0xf
ja 0x53d0eb
mov ebx, 0xf
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], ebx
movups xmm0, xmmword [edi]
movups xmmword [ebp - 0x34], xmm0
jmp 0x53d13e
mov eax, esi
or eax, 0xf
cmp eax, 0x7fffffff
jbe 0x53d0fe
mov eax, 0x7fffffff
jmp 0x53d109
cmp eax, 0x16
mov ecx, 0x16
cmovb eax, ecx
mov dword [ebp + 0x10], eax
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.00414510
mov ecx, eax
mov dword [ebp - 0x24], esi
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x20], eax
lea eax, [esi + 1]
push eax
push edi
push ecx
mov dword [ebp - 0x34], ecx
call fcn.005c3580
mov ebx, dword [ebp - 0x20]
add esp, 0x14
mov esi, dword [ebp - 0x24]
mov ecx, dword [ebp + 8]
test esi, esi
jne 0x53d17c
cmp ebx, 0xf
jbe 0x53d5e4
mov ecx, dword [ebp - 0x34]
inc ebx
mov eax, ecx
cmp ebx, 0x1000
jb 0x53d16d
mov ecx, dword [eax - 4]
add ebx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x53d6e6
push ebx
push ecx
call fcn.005ab85c
add esp, 8
jmp 0x53d5e1
mov edx, dword [ebp - 0x34]
lea ecx, [ebp - 0x34]
cmp ebx, 0xf
lea eax, [ebp - 0x34]
cmova ecx, edx
add ecx, esi
cmp ebx, 0xf
push ecx
mov ecx, dword [ebp - 0x5c]
cmova eax, edx
push eax
call fcn.00465fd0
mov esi, eax
cmp byte [esi + 8], 7
je 0x53d1e2
mov ecx, dword [ebp - 0x20]
cmp ecx, 0xf
jbe 0x53d5e1
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x53d1d3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x53d6e6
push ecx
push edx
call fcn.005ab85c
add esp, 8
jmp 0x53d5e1
push 0x720902
push str.action
mov ecx, esi
call fcn.00465fd0
cmp byte [eax + 8], 4
jne 0x53d22f
or dword [ebp - 0x18], 0x10
lea ecx, [ebp - 0x154]
push ecx
mov ecx, eax
call fcn.00465130
cmp dword [eax + 0x14], 0xf
mov edx, dword [eax + 0x10]
jbe 0x53d216
mov eax, dword [eax]
push 5
push str.clear
mov ecx, eax
call fcn.004108e0
add esp, 8
test al, al
je 0x53d22f
xor bl, bl
jmp 0x53d231
mov bl, 1
mov eax, dword [ebp - 0x18]
test al, 0x10
je 0x53d249
and eax, 0xffffffef
lea ecx, [ebp - 0x154]
mov dword [ebp - 0x18], eax
call fcn.004143d0
test bl, bl
jne 0x53d5c9
push 0x737eec
push str.fbos
mov ecx, esi
call fcn.00465fd0
mov esi, eax
cmp byte [esi + 8], 6
jne 0x53d5c9
cmp dword [ebp - 0x20], 0xf
lea eax, [ebp - 0x34]
push dword [ebp - 0x24]
cmova eax, dword [ebp - 0x34]
lea ecx, [ebp - 0xe0]
xorps xmm0, xmm0
mov dword [ebp - 0xe4], 0
movups xmmword [ebp - 0xe0], xmm0
push eax
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 0xf
mov byte [ebp - 0xe0], bl
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xc0], 0
call fcn.0040c060
mov ecx, dword [esi + 8]
and ecx, 0xff
mov dword [ebp - 0xe4], 0
mov eax, ecx
sub eax, 6
je 0x53d2f3
sub eax, 1
jne 0x53d301
mov eax, dword [esi]
test eax, eax
je 0x53d301
mov eax, dword [eax]
xor dl, dl
mov eax, dword [eax]
jmp 0x53d305
xor eax, eax
mov dl, 1
mov byte [ebp - 0x44], dl
mov dword [ebp - 0x48], eax
sub ecx, 6
je 0x53d315
sub ecx, 1
jne 0x53d321
mov esi, dword [esi]
test esi, esi
je 0x53d321
mov esi, dword [esi]
xor bl, bl
jmp 0x53d325
xor esi, esi
mov bl, 1
mov ecx, dword [ebp - 0xc0]
mov edi, dword [ebp - 0xc4]
mov byte [ebp + 0x13], bl
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 8], edi
nop word [eax + eax]
test dl, dl
je 0x53d348
mov cl, bl
jmp 0x53d34d
cmp eax, esi
sete cl
test cl, cl
jne 0x53d505
cmp byte [eax + 0x20], 4
lea ecx, [eax + 0x18]
jne 0x53d4ef
lea eax, [ebp - 0x74]
push eax
call fcn.00465130
mov edx, dword [ebp - 0x64]
test edx, edx
jne 0x53d393
mov eax, dword [ebp - 0x60]
cmp eax, 0xf
jbe 0x53d4ef
push eax
push dword [ebp - 0x74]
lea eax, [ebp - 0x74]
push eax
call fcn.00414390
add esp, 0xc
jmp 0x53d4ef
mov eax, dword [ebp - 0x10]
xor ebx, ebx
mov ecx, dword [eax + 0x80]
mov eax, dword [eax + 0x84]
sub eax, ecx
mov ecx, dword [ebp - 0x74]
sar eax, 2
imul eax, eax, 0xeeeeeeef
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x58], eax
test eax, eax
je 0x53d4bc
mov eax, dword [ebp - 0x10]
mov edi, dword [eax + 0x80]
add edi, 0x20
nop dword [eax]
cmp dword [ebp - 0x60], 0xf
lea eax, [ebp - 0x74]
cmova eax, ecx
cmp dword [edi + 0x14], 0xf
mov ecx, edi
jbe 0x53d3e4
mov ecx, dword [edi]
push edx
mov edx, dword [edi + 0x10]
push eax
call fcn.004108e0
add esp, 8
test al, al
jne 0x53d40c
mov ecx, dword [ebp - 0xc]
inc ebx
mov edx, dword [ebp - 0x64]
add edi, 0x3c
cmp ebx, dword [ebp - 0x58]
jb 0x53d3d0
mov edi, dword [ebp - 8]
jmp 0x53d4bc
mov edi, dword [ebp - 8]
mov edx, dword [ebp - 0x1c]
cmp edi, edx
je 0x53d426
mov dword [edi], ebx
add edi, 4
mov dword [ebp - 0xc4], edi
jmp 0x53d4b6
mov ecx, dword [ebp - 0xc8]
sub edi, ecx
mov eax, edi
mov dword [ebp - 8], edi
sar eax, 2
mov dword [ebp - 0x54], eax
cmp eax, 0x3fffffff
je 0x53d6e1
sub edx, ecx
lea edi, [eax + 1]
sar edx, 2
mov eax, 0x3fffffff
mov ecx, edx
mov dword [ebp - 0x50], edi
shr ecx, 1
sub eax, ecx
cmp edx, eax
jbe 0x53d465
mov eax, 0x3fffffff
jmp 0x53d46d
lea eax, [ecx + edx]
cmp eax, edi
cmovb eax, edi
lea edx, [ebp - 0x58]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x58], eax
call fcn.0042c790
push dword [ebp - 8]
mov edi, eax
mov eax, dword [ebp - 0x54]
push dword [ebp - 0xc8]
push edi
mov dword [edi + eax*4], ebx
call fcn.005c3580
add esp, 0xc
lea ecx, [ebp - 0xc8]
push dword [ebp - 0x1c]
push dword [ebp - 0x50]
push edi
call fcn.0042cb00
mov ecx, dword [ebp - 0xc0]
mov edi, dword [ebp - 0xc4]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 8], edi
mov eax, dword [ebp - 0x60]
cmp eax, 0xf
jbe 0x53d4ef
lea edx, [eax + 1]
mov eax, ecx
cmp edx, 0x1000
jb 0x53d4e5
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x53d6e6
push edx
push ecx
call fcn.005ab85c
add esp, 8
lea ecx, [ebp - 0x48]
call fcn.00428d00
mov dl, byte [ebp - 0x44]
mov eax, dword [ebp - 0x48]
mov bl, byte [ebp + 0x13]
jmp 0x53d340
cmp dword [ebp - 0xc8], edi
jne 0x53d560
lea ecx, [ebp - 0xc8]
call fcn.00427a90
lea ecx, [ebp - 0xe0]
call fcn.004143d0
mov ecx, dword [ebp - 0x20]
cmp ecx, 0xf
jbe 0x53d5e1
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x53d551
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x53d6e6
push ecx
push edx
call fcn.005ab85c
add esp, 8
jmp 0x53d5e1
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebx + 0x90]
cmp esi, dword [ebx + 0x94]
je 0x53d5a0
mov eax, dword [ebp - 0xe4]
lea ecx, [esi + 4]
mov dword [esi], eax
lea eax, [ebp - 0xe0]
push eax
call fcn.004141c0
lea eax, [ebp - 0xc8]
push eax
lea ecx, [esi + 0x1c]
call fcn.00427e40
add dword [ebx + 0x90], 0x28
jmp 0x53d5b3
lea eax, [ebp - 0xe4]
push eax
push esi
lea ecx, [ebx + 0x8c]
call fcn.00544d60
lea ecx, [ebp - 0xc8]
call fcn.00427a90
lea ecx, [ebp - 0xe0]
call fcn.004143d0
mov eax, dword [ebp - 0x20]
cmp eax, 0xf
jbe 0x53d5e1
push eax
push dword [ebp - 0x34]
lea eax, [ebp - 0x34]
push eax
call fcn.00414390
add esp, 0xc
mov ecx, dword [ebp + 8]
inc ecx
mov dword [ebp + 8], ecx
cmp ecx, dword [ebp - 0x40]
jae 0x53d5f8
mov edx, dword [ebp - 0x90]
jmp 0x53d0a0
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x4c]
test byte [edx + 0x98], 1
je 0x53d636
mov eax, dword [ecx + 0x20c]
shr eax, 0xd
not al
and eax, 1
add eax, dword [edx + 0xb4]
add dword [ecx + 0x21c], eax
mov eax, dword [edx + 0x78]
sub eax, dword [edx + 0x74]
sar eax, 2
imul eax, eax, 0xb6db6db7
add dword [ecx + 0x220], eax
mov eax, dword [ecx + 0x214]
add ecx, 0x210
cmp eax, dword [ecx + 8]
je 0x53d64f
mov dword [eax], edx
add dword [ecx + 4], 4
jmp 0x53d662
lea edx, [ebp - 0xa0]
push edx
push eax
call fcn.0042c120
mov edx, dword [ebp - 0xa0]
mov edi, dword [edx + 8]
lea ecx, [ebp - 0x90]
mov esi, dword [edx + 0xc]
call fcn.0040bf20
mov ecx, dword [ebp - 0x188]
cmp ecx, 0xf
jbe 0x53d6a9
mov edx, dword [ebp - 0x19c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x53d69f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x53d6e6
push ecx
push edx
call fcn.005ab85c
add esp, 8
lea ecx, [ebp - 0x16c]
call fcn.00465f40
mov ecx, dword [ebp - 0x160]
xorps xmm0, xmm0
movlpd qword [ebp - 0x16c], xmm0
test ecx, ecx
je 0x53d6cf
push ecx
call fcn.004672a0
mov eax, edi
mov edx, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
call fcn.00414440
call fcn.00410570
call fcn.005c695f
int3