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

Disassembly:
sub esp, 0x308
push ebx
push ebp
push esi
push edi
xor edi, edi
push str.CreateFrames
mov dword [esp + 0x14], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x140], edi
mov dword [esp + 0xbc], edi
mov dword [esp + 0xe4], edi
mov dword [esp + 0x14c], edi
mov dword [esp + 0x88], edi
call fcn.004e4630
mov esi, dword [esp + 0x320]
mov eax, dword [esp + 0x328]
add esp, 4
cmp eax, edi
mov dword [esi + 0x70c], edi
mov dword [esi + 0x744], edi
mov dword [esi + 0x63c], edi
mov dword [esi + 0x698], edi
mov dword [esp + 0xcc], edi
mov dword [esi + 0x528], edi
jge 0x551864
xor eax, eax
mov dword [esp + 0x324], eax
cmp dword [esi + 0x999c], edi
mov dword [esi + 0x530], eax
je 0x55187e
cmp dword [esi + 0x20], edi
jne 0x55187e
mov eax, 1
jmp 0x551880
xor eax, eax
push 0x40
mov dword [esi + 0x654], eax
lea eax, [esp + 0x2c]
push edi
push eax
call fcn.004e28a0
push 0x40
lea ecx, [esp + 0xf4]
push edi
push ecx
call fcn.004e28a0
add esp, 0x18
xor ecx, ecx
or edx, 0xffffffff
cmp dword [esi + 0x5894], edi
jle 0x5518e2
xor eax, eax
jmp 0x5518c0
mov edi, dword [esi + 0x5884]
mov dword [edi + eax + 0x44], edx
mov edi, dword [esi + 0x5884]
mov dword [edi + eax + 0x40], edx
add ecx, 1
add eax, 0x68
cmp ecx, dword [esi + 0x5894]
jl 0x5518c0
mov eax, dword [esi + 0x70c]
push eax
push esi
or edi, 0xffffffff
mov dword [esp + 0xc8], eax
mov dword [esp + 0x18], eax
call fcn.004bba60
mov ebx, dword [esp + 0x32c]
xor ebp, ebp
add esp, 8
cmp ebx, dword [esi + 0x39f8]
mov dword [esi + 0x51c], ebp
mov dword [esp + 0x64], ebp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0xd8], ebp
mov dword [esi + 0x534], ebx
mov dword [esp + 0x58], edi
mov dword [esp + 0x144], ebp
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x90], edi
jne 0x55195a
mov dword [esi + 0x5b9c], ebp
mov dword [esi + 0x5b98], ebp
mov dword [esi + 0x5b94], ebp
mov dword [esi + 0x5b90], ebp
mov edx, dword [esi + 0x3a10]
lea ecx, [ebx + ebx*8]
add ecx, ecx
add ecx, ecx
add ecx, ecx
lea eax, [ecx + edx + 0x3c]
mov edx, dword [eax]
mov dword [eax], ebp
mov eax, dword [esi + 0x3a10]
and dword [ecx + eax + 0x28], 0xfffffffb
lea eax, [ecx + eax + 0x28]
mov dword [esp + 0xdc], edx
mov edx, dword [esi + 0x3a10]
mov eax, dword [ecx + edx]
cmp eax, dword [esi + 0x5e4]
lea edi, [ecx + edx]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0xa4], edi
jl 0x5519b5
cmp ebx, ebp
jle 0x5519b5
mov dword [esi + 0x39e8], ebx
jmp 0x554561
mov edx, dword [esi + 0x138]
lea edx, [edx + eax*4]
mov dword [esp + 0xd0], edx
mov edx, dword [edx]
cmp dword [edx + 0x2c], ebp
je 0x5519f9
cmp eax, ebp
jl 0x5519f4
mov edx, dword [esp + 0xd0]
mov edi, dword [edx]
cmp dword [edi + 0x34], ebx
jne 0x5519ed
cmp dword [edi + 0x2c], ebp
je 0x5519ed
sub eax, 1
sub edx, 4
cmp eax, ebp
jge 0x5519d7
mov edi, dword [esp + 0xa4]
add eax, 1
mov dword [edi], eax
mov eax, dword [esi + 0x3a10]
mov ecx, dword [ecx + eax]
push ecx
push esi
call fcn.004aea30
fild dword [esi + 0x510]
mov edx, dword [esi + 0x39c0]
mov edi, eax
mov ecx, edi
fstp dword [esp + 0x74]
imul ecx, ecx, 0x98
lea ebx, [ecx + edx]
mov dword [esp + 0x50], edi
add esp, 8
fld dword [ebx + 4]
fld dword [esp + 0x6c]
fld st(0)
fmulp st(2)
fxch st(1)
call fcn.005ac350
mov ecx, dword [esp + 0x324]
cmp ecx, dword [esi + 0x530]
mov dword [esp + 0x50], eax
jne 0x551a5b
mov dword [esp + 0x164], eax
jmp 0x551a62
mov dword [esp + 0x150], eax
fmul dword [ebx + 8]
call fcn.005ac350
cmp dword [esi + 0x654], ebp
mov ebx, dword [esp + 0x28]
mov dword [esp + 0xc4], eax
mov dword [esi + 0x56c], ebp
mov dword [esi + 0x568], ebp
mov dword [esi + 0x564], ebp
je 0x551ac6
lea edx, [esp + 0x158]
push edx
lea eax, [esp + 0xe4]
push eax
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x330]
lea edx, [esp + 0xf0]
push edx
lea eax, [esp + 0x38]
push eax
push ecx
push esi
call fcn.00550d40
mov edi, dword [esp + 0x64]
add esp, 0x1c
add ebx, dword [esi + 0x568]
imul edi, edi, 0x70
cmp dword [esp + 0x58], 0xffffffff
mov eax, dword [esi + 0x39c4]
mov edx, dword [esi + 0x564]
mov ecx, dword [edi + eax + 0x5c]
mov dword [esp + 0x168], edx
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x54], ecx
jne 0x551cb0
mov edi, dword [esp + 0x324]
lea edx, [esp + 0x194]
push edx
push edi
push esi
call fcn.00525e80
add esp, 0xc
cmp eax, ebp
mov dword [esp + 0x4c], eax
jge 0x551b25
mov eax, dword [esp + 0x48]
mov dword [esp + 0x4c], eax
push 1
push ebp
push edi
push esi
call fcn.00526180
add esp, 0x10
cmp eax, ebp
mov dword [esp + 0x5c], eax
jle 0x551b50
mov ecx, dword [esp + 0x4c]
mov edx, dword [esi + 0x39c0]
imul ecx, ecx, 0x98
fld dword [ecx + edx + 0x38]
jmp 0x551b64
mov eax, dword [esp + 0x4c]
mov ecx, dword [esi + 0x39c0]
imul eax, eax, 0x98
fld dword [eax + ecx + 0xc]
fimul dword [esi + 0x514]
call fcn.005ac350
lea edx, [esp + 0x180]
push edx
push edi
push esi
mov dword [esp + 0x64], eax
call fcn.00526000
add esp, 0xc
cmp eax, ebp
mov dword [esp + 0x4c], eax
jge 0x551b95
mov eax, dword [esp + 0x48]
mov dword [esp + 0x4c], eax
push ebp
push edi
push esi
call fcn.005262b0
add esp, 0xc
cmp eax, ebp
mov dword [esp + 0x64], eax
jle 0x551bbe
mov ecx, dword [esp + 0x4c]
mov edx, dword [esi + 0x39c0]
imul ecx, ecx, 0x98
fld dword [ecx + edx + 0x3c]
jmp 0x551bd2
mov eax, dword [esp + 0x4c]
mov ecx, dword [esi + 0x39c0]
imul eax, eax, 0x98
fld dword [eax + ecx + 0x10]
fimul dword [esi + 0x514]
call fcn.005ac350
push edi
push esi
mov dword [esp + 0x68], eax
call fcn.005263b0
mov eax, dword [esp + 0x50]
mov dword [esp + 0x54], eax
imul eax, eax, 0x70
add esp, 8
cmp dword [esi + 0x654], ebp
je 0x551c49
mov edx, dword [esi + 0x39c4]
fld dword [eax + edx + 0x60]
lea edi, [eax + edx]
fimul dword [esi + 0x514]
call fcn.005ac350
fld dword [edi + 0x64]
add eax, dword [esi + 0x56c]
fimul dword [esi + 0x510]
add eax, dword [esi + 0x568]
mov dword [esp + 0x80], eax
call fcn.005ac350
mov ecx, dword [esi + 0x564]
lea edx, [eax + ecx*2]
mov dword [esp + 0xc8], edx
jmp 0x551cb0
mov ecx, dword [esi + 0x39c4]
fld dword [eax + ecx + 0x60]
lea edi, [eax + ecx]
fimul dword [esi + 0x514]
call fcn.005ac350
cmp dword [esi + 0x5b84], ebp
je 0x551c74
mov edx, dword [esp + 0x54]
neg edx
lea eax, [eax + edx*2]
jmp 0x551c88
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x60]
add edx, ecx
add edx, dword [esp + 0x5c]
add edx, dword [esp + 0x64]
sub eax, edx
fld dword [edi + 0x64]
mov dword [esp + 0x80], eax
fimul dword [esi + 0x510]
call fcn.005ac350
sub eax, dword [esp + 0x50]
sub eax, dword [esp + 0xc4]
mov dword [esp + 0xc8], eax
nop
mov eax, dword [esp + 0x28]
mov edx, dword [esi + 0x3a10]
mov edi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x1c]
mov ebx, dword [eax + edx]
mov eax, dword [esi + 0x5e4]
add edi, 1
xor ebp, ebp
cmp ebx, eax
mov dword [esp + 0x7c], edi
mov dword [esp + 0xa8], ebp
mov dword [esp + 0x160], ecx
mov dword [esp + 0x14], ebx
jl 0x551cfc
lea ebx, [eax - 1]
mov dword [esp + 0x14], ebx
mov eax, dword [esi + 0x70c]
push eax
push esi
mov dword [esp + 0x18], eax
call fcn.004bba60
add esp, 8
cmp edi, 1
jne 0x551f18
cmp dword [esi + 0x5b84], ebp
mov dword [esp + 0x68], 0x1000
je 0x551cb0
mov ebx, dword [esp + 0x324]
lea ecx, [esp + 0x194]
push ecx
push ebx
push esi
call fcn.00525e80
add esp, 0xc
test eax, eax
mov dword [esp + 0x4c], eax
jl 0x553cea
mov eax, dword [esp + 0x194]
add eax, edi
mov edi, dword [esp + 0x198]
add edi, 0xffffffff
cmp dword [esi + 0x5b88], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edi
jne 0x551d7d
mov dword [esp + 0xa8], 0x1000
cmp ebx, dword [esi + 0x39f8]
jne 0x551d91
mov dword [esi + 0x5b90], eax
mov dword [esi + 0x5b94], edi
cmp edi, eax
jl 0x551cb0
mov edx, dword [esi + 0x3a10]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + edx]
push eax
push esi
call fcn.004aea30
add esp, 8
cmp dword [esi + 0x654], 0
mov dword [esp + 0x4c], eax
jne 0x55241b
mov ecx, dword [esp + 0x14]
push eax
push edi
push ecx
push esi
call fcn.00578f20
mov ebx, eax
add esp, 0x10
test ebx, ebx
jle 0x55241b
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x704]
imul edx, edx, 0xb4
mov ebp, 1
mov dword [edx + eax], ebp
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
mov eax, dword [esp + 0x28]
mov dword [ecx + edx + 0x18], eax
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
mov eax, dword [esp + 0xe4]
mov dword [ecx + edx + 0x20], eax
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
mov dword [ecx + edx + 0x14], 0
mov eax, dword [esp + 0x4c]
mov edx, dword [esi + 0x39c0]
mov ecx, eax
imul eax, eax, 0x70
imul ecx, ecx, 0x98
add ecx, edx
mov edx, dword [esi + 0x39c4]
fld dword [eax + edx + 0x64]
fsub dword [ecx + 4]
fsub dword [ecx + 8]
fimul dword [esi + 0x510]
call fcn.005ac350
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
mov dword [ecx + edx + 0x24], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov dword [eax + ecx + 0x8c], ebp
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x704]
imul edx, edx, 0xb4
mov dword [edx + eax + 0x28], ebx
mov ecx, dword [esi + 0x514]
mov edx, dword [esi + 0x504]
push ecx
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
mov dword [ecx + edx + 0x38], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esi + 0x704]
mov ecx, eax
imul ecx, ecx, 0xb4
add ecx, edx
mov edx, dword [ecx + 0x28]
add dword [esp + 0x28], edx
mov ecx, dword [ecx + 0x38]
add dword [esp + 0xe4], ecx
add dword [esi + 0x70c], ebp
add eax, ebp
push eax
push esi
mov dword [esp + 0x18], eax
call fcn.004bba60
add esp, 8
jmp 0x55241b
cmp edi, 2
jne 0x551ffc
mov edx, dword [esi + 0x3a10]
mov eax, dword [esp + 0x1c]
add eax, edx
cmp dword [eax + 0x30], ebp
je 0x551cb0
mov ecx, dword [eax + 0x34]
mov edi, dword [eax + 0x38]
mov eax, dword [esi + 0x5e4]
cmp ecx, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edi
jge 0x551cb0
cmp edi, eax
jge 0x551cb0
mov ebx, ecx
push ebx
push esi
mov dword [esp + 0x70], 0
mov dword [esp + 0xb0], 0x5000
call fcn.004aea30
add esp, 8
cmp ebx, edi
mov dword [esp + 0x4c], eax
mov ecx, ebx
jg 0x551fcb
mov edx, dword [esi + 0x138]
lea edx, [edx + ebx*4]
lea esp, [esp]
mov eax, dword [edx]
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x551cb0
mov ebx, dword [esi + 0x588c]
imul eax, eax, 0x84
mov eax, dword [ebx + eax + 4]
mov ebx, dword [esi + 0x5884]
imul eax, eax, 0x68
test byte [eax + ebx + 0x24], 4
je 0x551cb0
add ecx, 1
add edx, 4
cmp ecx, edi
jle 0x551f90
mov ecx, dword [esp + 0x14]
push 0x20
push ecx
push esi
call fcn.004e08a0
add esp, 0xc
test eax, eax
jne 0x551cb0
push 0x20
push edi
push esi
call fcn.004e08a0
add esp, 0xc
test eax, eax
je 0x551cb0
jmp 0x55241b
cmp edi, 4
jne 0x55223d
cmp dword [esi + 0x5b84], ebp
mov dword [esp + 0x68], 0x2000
je 0x554561
mov edi, dword [esp + 0x324]
mov ebp, dword [esp + 0x4c]
lea edx, [esp + 0x180]
push edx
push edi
push esi
call fcn.00526000
add esp, 0xc
test eax, eax
mov dword [esp + 0x4c], eax
jl 0x553cea
mov ecx, dword [esp + 0x180]
mov eax, dword [esp + 0x190]
add ecx, 1
test eax, eax
mov dword [esp + 0x14], ecx
jne 0x552065
mov eax, dword [esp + 0x184]
add eax, 0xffffffff
cmp edi, dword [esi + 0x39f8]
mov dword [esp + 0x18], eax
jne 0x55207d
mov dword [esi + 0x5b98], ecx
mov dword [esi + 0x5b9c], eax
cmp eax, ecx
jl 0x554561
cmp dword [esi + 0x5b84], 0
je 0x552230
mov eax, dword [esp + 0x188]
cmp eax, dword [esp + 0x18c]
jle 0x552230
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
mov ebx, 1
mov dword [ecx + edx], ebx
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov edx, dword [esp + 0x28]
mov dword [eax + ecx + 0x18], edx
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov edx, dword [esp + 0xe4]
mov dword [eax + ecx + 0x20], edx
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov edx, dword [esi + 0x564]
mov dword [eax + ecx + 0x14], edx
mov eax, dword [esp + 0x4c]
mov ecx, dword [esi + 0x39c4]
imul eax, eax, 0x70
fld dword [eax + ecx + 0x64]
fimul dword [esi + 0x510]
call fcn.005ac350
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul edx, edx, 0xb4
mov dword [edx + ecx + 0x24], eax
cmp dword [esi + 0x654], 0
jne 0x552196
mov edx, dword [esp + 0x4c]
mov eax, dword [esi + 0x39c0]
imul edx, edx, 0x98
fld dword [eax + edx + 8]
fadd dword [eax + edx + 4]
fimul dword [esi + 0x510]
mov ecx, dword [esp + 0x10]
add eax, edx
imul ecx, ecx, 0xb4
mov edx, dword [esi + 0x704]
lea edi, [ecx + edx + 0x24]
call fcn.005ac350
sub dword [edi], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov dword [eax + ecx + 0x8c], ebx
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x188]
imul eax, eax, 0xb4
sub edx, dword [esp + 0x18c]
mov ecx, dword [esi + 0x704]
mov dword [eax + ecx + 0x28], edx
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0x514]
imul ecx, ecx, 0xb4
mov eax, dword [esi + 0x504]
push edx
mov edx, dword [esi + 0x704]
push eax
mov eax, dword [ecx + edx + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
mov dword [ecx + edx + 0x38], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esi + 0x704]
mov ecx, eax
imul ecx, ecx, 0xb4
add ecx, edx
mov edx, dword [ecx + 0x28]
add dword [esp + 0x28], edx
mov ecx, dword [ecx + 0x38]
add dword [esp + 0xe4], ecx
add dword [esi + 0x70c], ebx
add eax, ebx
push eax
push esi
mov dword [esp + 0x18], eax
call fcn.004bba60
add esp, 8
mov edi, dword [esp + 0x18]
mov dword [esp + 0x4c], ebp
jmp 0x55241b
push ebx
push esi
mov dword [esp + 0x70], ebp
call fcn.004aea30
mov edx, dword [esi + 0x39e8]
sub edx, 1
add esp, 8
cmp dword [esp + 0x324], edx
mov dword [esp + 0x4c], eax
jne 0x552273
mov edi, dword [esi + 0x5e4]
sub edi, 1
mov dword [esp + 0x18], edi
jmp 0x5523fc
mov eax, dword [esi + 0x3a10]
mov ecx, dword [esp + 0x1c]
mov edi, dword [ecx + eax + 4]
mov eax, dword [esi + 0x5e4]
cmp edi, eax
mov dword [esp + 0x18], edi
jl 0x5522b5
lea edi, [eax - 1]
lea eax, [edi - 1]
cmp dword [esi + 0x3a00], eax
mov dword [esp + 0x18], edi
jle 0x5522a7
mov dword [esi + 0x3a00], eax
cmp dword [esi + 0x3a00], ebp
jge 0x5522b5
mov dword [esi + 0x3a00], ebp
mov edx, dword [esi + 0x138]
mov eax, dword [edx + edi*4]
mov eax, dword [eax + 0x2c]
test eax, eax
lea ebp, [edi*4]
jle 0x5522de
mov ecx, dword [esi + 0x588c]
imul eax, eax, 0x84
mov eax, dword [ecx + eax + 4]
jmp 0x5522e0
xor eax, eax
cmp dword [esi + 0x3a04], 0
jne 0x5523fc
test eax, eax
jle 0x5523fc
mov edx, dword [esi + 0x5884]
imul eax, eax, 0x68
test byte [eax + edx + 0x24], 0x10
jne 0x5523fc
push 0x20
push edi
push esi
call fcn.004e08a0
add esp, 0xc
test eax, eax
jne 0x5523fc
mov edx, dword [esp + 0x14]
cmp edi, edx
mov ebx, edi
jle 0x55234e
mov eax, dword [esi + 0x138]
add eax, ebp
nop
mov ecx, dword [eax]
cmp dword [ecx + 0x2c], 0
je 0x55234e
mov ecx, dword [ecx + 0x10]
test ecx, ecx
je 0x552344
test byte [ecx], 0x20
jne 0x55234e
sub ebx, 1
sub eax, 4
cmp ebx, edx
jg 0x552330
cmp ebx, edx
jne 0x55238c
lea ecx, [edi + 1]
cmp ecx, dword [esi + 0x5e4]
mov ebx, edi
jge 0x55238c
mov eax, dword [esi + 0x138]
add eax, ebp
mov edx, dword [eax]
cmp dword [edx + 0x2c], 0
je 0x55238c
mov edx, dword [edx + 0x10]
test edx, edx
je 0x55237b
test byte [edx], 0x20
jne 0x55238c
add ecx, 1
add ebx, 1
add eax, 4
cmp ecx, dword [esi + 0x5e4]
jl 0x552367
mov eax, dword [esi + 0x3a10]
mov ebp, dword [esp + 0x1c]
mov dword [eax + ebp + 4], ebx
mov ecx, dword [esi + 0x138]
mov edx, dword [ecx + ebx*4]
mov eax, dword [edx + 0x2c]
mov ecx, dword [esi + 0x588c]
imul eax, eax, 0x84
mov edx, dword [ecx + eax + 4]
push edx
push 0
mov edi, ebx
push esi
mov dword [esp + 0x24], edi
call fcn.00514a20
lea ecx, [ebx + 1]
add esp, 0xc
cmp ecx, dword [esi + 0x5e4]
jge 0x5523e3
mov edx, dword [esi + 0x5884]
imul eax, eax, 0x68
test byte [eax + edx + 0x24], 0x10
jne 0x5523ed
mov eax, dword [esi + 0x3a10]
mov dword [eax + ebp + 0x48], ecx
mov ecx, dword [esi + 0x3a10]
and dword [ecx + ebp + 0x70], 0xfffffffe
lea eax, [ecx + ebp + 0x70]
mov eax, dword [esp + 0x14]
cmp edi, eax
jge 0x55240a
mov edi, eax
mov dword [esp + 0x18], edi
mov eax, dword [esi + 0x5e4]
cmp edi, eax
jl 0x55241b
lea edi, [eax - 1]
mov dword [esp + 0x18], edi
mov eax, dword [esi + 0x5e4]
cmp edi, eax
jl 0x55242c
lea edi, [eax - 1]
mov dword [esp + 0x18], edi
mov ebx, dword [esp + 0x14]
cmp ebx, edi
jle 0x55243a
mov ebx, edi
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x7c]
cmp eax, 3
je 0x55244c
cmp eax, 2
jne 0x5525a4
cmp dword [esp + 0x90], 0xffffffff
jne 0x5525a4
mov edx, dword [esp + 0x48]
mov eax, dword [esi + 0x39c0]
imul edx, edx, 0x98
test dword [edx + eax + 0x28], 0x180
je 0x5525a4
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
mov dword [ecx + edx], 1
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov edx, dword [esp + 0x28]
mov dword [eax + ecx + 0x18], edx
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov edx, dword [esp + 0xe4]
mov dword [eax + ecx + 0x20], edx
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
xor ebp, ebp
mov dword [eax + ecx + 0x14], ebp
mov eax, dword [esp + 0x4c]
mov ecx, dword [esi + 0x39c0]
mov edx, eax
imul eax, eax, 0x70
imul edx, edx, 0x98
add ecx, edx
mov edx, dword [esi + 0x39c4]
fld dword [eax + edx + 0x64]
fsub dword [ecx + 4]
fsub dword [ecx + 8]
fimul dword [esi + 0x510]
call fcn.005ac350
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
mov dword [ecx + edx + 0x24], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov edx, 1
mov dword [eax + ecx + 0x8c], edx
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov dword [eax + ecx + 0x28], ebp
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov dword [eax + ecx + 0x38], ebp
mov eax, dword [esp + 0x10]
mov ebp, dword [esi + 0x704]
mov ecx, eax
imul ecx, ecx, 0xb4
add ecx, ebp
mov ebp, dword [ecx + 0x28]
add dword [esp + 0x28], ebp
mov ecx, dword [ecx + 0x38]
add dword [esp + 0xe4], ecx
add dword [esi + 0x70c], edx
mov dword [esp + 0x90], eax
add eax, edx
push eax
push esi
mov dword [esp + 0x18], eax
call fcn.004bba60
add esp, 8
mov dword [esp + 0x174], ebx
cmp dword [esi + 0x740], 0
mov ebp, dword [esp + 0x4c]
jle 0x552605
cmp dword [esp + 0x144], 0
jne 0x552605
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x50]
push ecx
push edx
mov edx, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x338]
lea ecx, [esp + 0x24]
push ecx
push edx
push eax
push esi
call fcn.00551560
mov ebp, dword [esp + 0x70]
add esp, 0x24
mov dword [esp + 0x144], 1
cmp ebx, edi
mov eax, ebx
jge 0x55262c
mov ecx, dword [esi + 0x138]
lea ecx, [ecx + ebx*4]
mov edx, dword [ecx]
mov edx, dword [edx + 0x10]
test edx, edx
je 0x552622
test byte [edx], 2
jne 0x55262c
add eax, 1
add ecx, 4
cmp eax, edi
jl 0x552614
mov ecx, dword [esi + 0x5e4]
cmp eax, ecx
mov edx, eax
mov dword [esp + 0x78], eax
jl 0x552643
lea edx, [ecx - 1]
mov dword [esp + 0x78], edx
test edx, edx
jge 0x55264d
xor edx, edx
mov dword [esp + 0x78], edx
cmp dword [esp + 0x68], 0
jne 0x5526f5
mov eax, dword [esi + 0x5b84]
test eax, eax
jne 0x552677
mov ecx, dword [esp + 0x324]
cmp ecx, dword [esi + 0x39f8]
jne 0x552677
mov dword [esi + 0x5b90], ebx
mov ecx, dword [esi + 0x138]
mov ecx, dword [ecx + ebx*4]
mov edi, dword [ecx + 0x14]
mov ebp, dword [esi + 0x2b38]
imul edi, edi, 0x58
mov ecx, 0x3000
test dword [edi + ebp + 0x18], ecx
je 0x5526bd
add ebx, 1
cmp ebx, edx
jg 0x5526b9
mov edi, dword [esi + 0x138]
mov edi, dword [edi + ebx*4]
mov edi, dword [edi + 0x14]
mov ebp, dword [esi + 0x2b38]
imul edi, edi, 0x58
test dword [edi + ebp + 0x18], ecx
jne 0x552697
mov dword [esp + 0x14], ebx
test eax, eax
jne 0x5526d9
mov eax, dword [esp + 0x324]
cmp eax, dword [esi + 0x39f8]
jne 0x5526d9
lea ecx, [ebx - 1]
mov dword [esi + 0x5b94], ecx
cmp ebx, edx
jg 0x553cea
mov edx, dword [esp + 0x14]
push edx
push esi
call fcn.004aea30
mov ebp, eax
add esp, 8
mov dword [esp + 0x4c], ebp
mov ebx, dword [esi + 0x510]
mov ecx, dword [esi + 0x39c0]
mov eax, ebp
imul eax, eax, 0x98
mov edx, ebp
imul edx, edx, 0x70
mov dword [esp + 0xa4], ebx
lea edi, [eax + ecx]
mov eax, dword [esi + 0x39c4]
fild dword [esp + 0xa4]
fstp dword [esp + 0x6c]
fld dword [edx + eax + 0x64]
fld dword [esp + 0x6c]
fld st(0)
fmulp st(2)
fxch st(1)
call fcn.005ac350
fld dword [edi + 8]
fmul st(1)
mov dword [esp + 0x6c], eax
call fcn.005ac350
fmul dword [edi + 4]
sub dword [esp + 0x6c], eax
call fcn.005ac350
mov ecx, dword [esp + 0x6c]
sub ecx, eax
cmp ecx, dword [esi + 0x51c]
mov dword [esp + 0x20], ecx
jle 0x55276e
mov dword [esi + 0x51c], ecx
cmp dword [esi + 0x20], 0
je 0x552791
mov edx, dword [esi + 0x500]
mov eax, dword [esi + 0x4b4]
push edx
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x20], eax
mov edx, dword [esi + 0x39c0]
mov ecx, ebp
imul ecx, ecx, 0x98
cmp dword [esp + 0x68], 0
mov ebx, dword [ecx + edx + 0x14]
lea edi, [ecx + edx]
mov dword [esp + 0x94], ebx
je 0x5527c0
mov ebx, 1
mov dword [esp + 0x94], ebx
fld dword [edi + 0x18]
fimul dword [esi + 0x510]
call fcn.005ac350
cmp ebx, 1
mov dword [esp + 0x3c], eax
jne 0x5527dd
xor eax, eax
mov dword [esp + 0x3c], eax
lea ecx, [ebx - 1]
imul ecx, eax
mov eax, dword [esp + 0x20]
sub eax, ecx
cdq
idiv ebx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x68]
test eax, 0x1000
je 0x55282e
mov edx, dword [esi + 0x514]
push 0x5a0
push edx
push 0x28
call dword [sym.imp.KERNEL32.dll_MulDiv]
push 1
mov edi, eax
mov eax, dword [esp + 0x328]
push 0
push eax
push esi
call fcn.00526180
add esp, 0x10
add edi, eax
mov dword [esp + 0x6c], edi
jmp 0x552899
test eax, 0x2000
je 0x552867
mov ecx, dword [esi + 0x514]
push 0x5a0
push ecx
push 0x28
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov edx, dword [esp + 0x324]
xor ebx, ebx
push ebx
push edx
push esi
mov edi, eax
call fcn.005262b0
add esp, 0xc
add edi, eax
mov dword [esp + 0x6c], edi
jmp 0x55289b
mov eax, dword [esp + 0x324]
cmp dword [edi + 0x2c], eax
jne 0x552884
mov ecx, dword [esi + 0x39c4]
imul ebp, ebp, 0x70
mov eax, dword [ecx + ebp + 0x68]
test eax, eax
jg 0x552895
mov eax, dword [esp + 0x80]
sub eax, dword [esp + 0x28]
add eax, dword [esi + 0x528]
mov dword [esp + 0x6c], eax
xor ebx, ebx
mov eax, dword [esp + 0x10]
push eax
push esi
mov dword [esp + 0xac], eax
call fcn.004bba60
add esp, 8
test eax, eax
jne 0x5528c4
push 1
push str.Ran_Out_of_Text_Frame_Table__CreateFrames_1_
push esi
call fcn.004e7a10
add esp, 0xc
xor eax, eax
cmp dword [esi + 0x654], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x100], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0xe8], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0xec], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x34], eax
je 0x552909
mov eax, dword [esi + 0x564]
add eax, dword [esp + 0x50]
mov dword [esp + 0x40], eax
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
xor ebp, ebp
mov dword [esp + 0x248], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x1a8], eax
or eax, 0xffffffff
mov dword [esp + 0x1f8], edx
mov dword [esp + 0xa0], ebp
mov dword [esp + 0x70], ebp
mov dword [esp + 0x154], eax
mov dword [esp + 0x178], ebp
mov dword [esp + 0x17c], ebp
mov dword [esp + 0x12c], 1
mov dword [esp + 0xb0], ebp
mov dword [esp + 0x9c], eax
mov dword [esp + 0x15c], ebp
mov dword [esp + 0x140], ebp
mov dword [esi + 0x730], ebp
lea esp, [esp]
mov ecx, dword [esi + 0x5e4]
cmp ebx, ecx
jge 0x5529b1
cmp dword [esp + 0x7c], 3
jne 0x5529b1
mov edx, dword [esi + 0x138]
mov eax, dword [edx + ebx*4]
mov edx, dword [esp + 0x324]
cmp dword [eax + 0x34], edx
je 0x5529b1
cmp dword [eax + 0x2c], ebp
jne 0x55390c
xor ebp, ebp
cmp ebx, ecx
mov dword [esp + 0x24], ebp
jge 0x5529d9
mov eax, dword [esi + 0x138]
mov edx, dword [eax + ebx*4]
mov eax, dword [edx + 0x18]
mov ecx, dword [esi + 0x138]
mov edx, dword [ecx + ebx*4]
mov dword [esp + 0x24], eax
mov dword [edx + 0x4c], 0xffffffff
cmp dword [esp + 0x9c], ebp
jge 0x5529ed
mov eax, ebx
mov dword [esp + 0x9c], ebx
jmp 0x5529f4
mov eax, dword [esp + 0x170]
cmp dword [esp + 0x68], ebp
mov dword [esp + 0xb4], eax
mov dword [esp + 0x170], ebx
mov dword [esp + 0xac], ebp
mov dword [esp + 0x88], ebp
mov dword [esp + 0x138], ebp
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x74], ebp
mov dword [esp + 0x134], ebp
mov dword [esp + 0x128], ebp
jne 0x552a64
cmp ebx, dword [esi + 0x5e4]
jge 0x552a64
mov eax, dword [esi + 0x138]
mov ecx, dword [eax + ebx*4]
mov edx, dword [ecx + 0x14]
mov eax, dword [esi + 0x2b38]
imul edx, edx, 0x58
test dword [edx + eax + 0x18], 0x3000
je 0x552a64
lea ecx, [ebx - 1]
mov dword [esp + 0x78], ecx
cmp ebx, dword [esi + 0x5e4]
mov edi, dword [esp + 0xb0]
mov dword [esp + 0x124], edi
jge 0x552a9e
mov edx, dword [esi + 0x138]
mov eax, dword [edx + ebx*4]
cmp dword [eax + 0x2c], ebp
je 0x552a9e
push ebx
push ebp
push esi
call fcn.00513250
add esp, 0xc
mov ecx, eax
mov dword [esp + 0xb0], eax
jmp 0x552aa7
xor ecx, ecx
mov dword [esp + 0xb0], ecx
mov eax, dword [esi + 0x588c]
imul edi, edi, 0x84
imul ecx, ecx, 0x84
mov edi, dword [edi + eax + 4]
cmp edi, ebp
mov ecx, dword [ecx + eax + 4]
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xd4], edi
jle 0x552af6
mov edx, dword [esp + 0x324]
push edx
push edi
push 1
push esi
call fcn.005131f0
add esp, 0x10
test eax, eax
mov dword [esp + 0x130], 1
jne 0x552afd
mov dword [esp + 0x130], ebp
cmp edi, ebp
jle 0x552b1f
mov eax, dword [esp + 0x324]
push eax
push edi
push ebp
push esi
call fcn.005131f0
add esp, 0x10
test eax, eax
je 0x552b1f
mov ecx, 1
jmp 0x552b21
xor ecx, ecx
cmp ebx, dword [esi + 0x5e4]
mov edi, dword [esi + 0x730]
mov dword [esp + 0x98], edi
jge 0x552b4a
mov edx, dword [esi + 0x138]
mov eax, dword [edx + ebx*4]
mov edx, dword [eax + 0x30]
mov dword [esi + 0x730], edx
jmp 0x552b50
mov dword [esi + 0x730], ebp
mov eax, dword [esp + 0x124]
cmp eax, ebp
mov edx, 1
jle 0x552b69
mov dword [esp + 0x88], edx
jmp 0x552b7d
cmp edi, ebp
jle 0x552b76
mov dword [esp + 0x128], edx
jmp 0x552b7d
mov dword [esp + 0xac], edx
cmp dword [esp + 0xb0], eax
mov eax, dword [esp + 0x14]
je 0x552b95
cmp ebx, eax
jle 0x552b95
mov dword [esp + 0x138], edx
mov ebp, dword [esp + 0xd4]
cmp dword [esp + 0xbc], ebp
je 0x552bb8
test ebp, ebp
je 0x552bb8
cmp ebx, eax
jle 0x552bb8
mov dword [esp + 0x8c], 1
mov edx, dword [esi + 0x730]
cmp edx, edi
je 0x552bd1
cmp ebx, eax
jle 0x552c07
mov dword [esp + 0x134], 1
cmp ebx, eax
jle 0x552c07
mov eax, dword [esi + 0x138]
mov eax, dword [eax + ebx*4 - 4]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x552c07
test byte [eax], 8
je 0x552c07
mov eax, dword [esp + 0x70]
mov ebp, dword [esp + 0x94]
add eax, 1
cmp eax, ebp
jge 0x552c0e
mov dword [esp + 0x74], 1
jmp 0x552c0e
mov ebp, dword [esp + 0x94]
cmp ebx, dword [esp + 0x78]
jle 0x552c40
cmp dword [esp + 0x130], 0
jne 0x552c22
test ecx, ecx
je 0x552c2d
mov dword [esp + 0x8c], 1
mov dword [esp + 0x74], 1
mov dword [esp + 0x12c], 0
cmp ebx, dword [esi + 0x5e4]
jge 0x552c69
mov ecx, dword [esi + 0x138]
mov eax, dword [ecx + ebx*4]
test byte [eax + 0x38], 0x20
je 0x552c69
cmp dword [esp + 0x12c], 0
je 0x552c69
mov dword [esp + 0x74], 1
mov eax, dword [esp + 0x88]
test eax, eax
je 0x552c86
cmp dword [esp + 0x8c], 0
jne 0x552c86
mov dword [esp + 0x74], 0
test edx, edx
jle 0x552dfb
mov dword [esp + 0x74], 0
cmp dword [esp + 0x138], 0
jne 0x552cb8
cmp dword [esp + 0x8c], 0
jne 0x552cb8
cmp dword [esp + 0x134], 0
je 0x5536ae
test eax, eax
je 0x552e10
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x38]
push edi
push ecx
push edx
mov eax, dword [esp + 0x40]
push eax
mov ecx, dword [esp + 0xd8]
push ecx
mov edx, dword [esp + 0x50]
push edx
mov eax, dword [esp + 0xac]
push eax
mov ecx, dword [esp + 0x3c]
push ecx
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xc8]
lea edx, [esp + 0x18c]
push edx
mov edx, dword [esp + 0xd8]
push eax
mov eax, dword [esp + 0xc4]
push ecx
push edx
mov edx, dword [esp + 0x154]
push eax
mov eax, dword [esp + 0x80]
lea ecx, [esp + 0x190]
push ecx
mov ecx, dword [esp + 0xd8]
push edx
mov edx, dword [esp + 0x8c]
push eax
mov eax, dword [esp + 0x364]
push ecx
mov ecx, dword [esp + 0x18c]
push edx
push eax
push ecx
add dword [esp + 0x94], 3
lea edx, [esp + 0x90]
push edx
lea eax, [esp + 0x1d0]
push eax
mov eax, dword [esp + 0x140]
lea ecx, [esp + 0x1d0]
push ecx
mov ecx, dword [esp + 0x88]
lea edx, [esp + 0x1b0]
push edx
push eax
push ecx
mov ecx, dword [esp + 0x14c]
lea edx, [esp + 0x168]
push edx
mov edx, dword [esp + 0x94]
lea eax, [esp + 0xb0]
push eax
push ecx
push edx
lea eax, [esp + 0x88]
push eax
push 0
push esi
call fcn.00578f60
add esp, 0x84
cmp edi, dword [esi + 0x730]
je 0x553379
test edi, edi
jle 0x553379
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0x2c]
push ecx
add eax, edx
mov edx, dword [esp + 0x88]
push eax
mov ecx, edi
push ecx
push edx
push esi
call fcn.00550c30
add esp, 0x14
jmp 0x553379
cmp dword [esp + 0x74], 0
je 0x552c96
add dword [esp + 0x70], 1
jmp 0x552cb8
cmp dword [esp + 0x128], 0
je 0x55314a
mov ecx, dword [esi + 0x72c]
mov ebp, edi
mov edi, dword [esp + 0x84]
xor eax, eax
cmp edx, ebp
setne al
imul edi, edi, 0xb4
imul ebp, ebp, 0x98
mov edx, dword [ecx + ebp + 0x54]
mov dword [esp + 0xd4], eax
mov eax, dword [esi + 0x704]
add edi, eax
test byte [edi + 0x8c], 8
mov dword [esp + 0xbc], edx
jne 0x553379
mov ecx, dword [esp + 0x10]
imul ecx, ecx, 0xb4
push 0xb4
add ecx, eax
push ecx
push edi
call fcn.004e29c0
mov eax, dword [esp + 0x1c]
mov edx, dword [esi + 0x704]
imul eax, eax, 0xb4
xor ecx, ecx
mov dword [eax + edx], ecx
mov edx, dword [esi + 0x72c]
mov eax, dword [esp + 0xa8]
mov dword [edx + ebp + 0x2c], eax
mov edx, dword [esp + 0x1c]
mov ebp, dword [esi + 0x704]
imul edx, edx, 0xb4
mov dword [edx + ebp + 4], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov ebp, dword [esp + 0xc0]
mov dword [eax + edx + 8], ebp
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov ebp, dword [esi + 0x704]
add edx, eax
mov eax, dword [esp + 0x1c]
imul eax, eax, 0xb4
mov dword [eax + ebp + 0x18], edx
mov edx, dword [esp + 0xf0]
mov eax, dword [esp + 0xf4]
mov ebp, dword [esi + 0x704]
add eax, edx
mov edx, dword [esp + 0x1c]
imul edx, edx, 0xb4
mov dword [edx + ebp + 0x20], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov ebp, dword [esp + 0x40]
mov dword [eax + edx + 0x14], ebp
mov eax, dword [esp + 0x1c]
mov edx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov dword [eax + edx + 0x74], ecx
mov eax, dword [esp + 0x1c]
mov edx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov dword [eax + edx + 0x78], ecx
mov eax, dword [esp + 0x1c]
mov edx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov ebp, dword [esp + 0x50]
add esp, 0xc
cmp dword [esp + 0xbc], ecx
mov dword [eax + edx + 0x28], ebp
jle 0x552f91
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov edx, dword [edi + 0x28]
mov dword [eax + ecx + 0x24], edx
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov edx, dword [eax + ecx + 0x80]
add edx, dword [eax + ecx + 0x7c]
mov edi, dword [sym.imp.KERNEL32.dll_MulDiv]
sub dword [eax + ecx + 0x24], edx
mov edx, dword [esp + 0x10]
add eax, ecx
imul edx, edx, 0xb4
mov eax, dword [esi + 0x514]
mov ecx, dword [esi + 0x504]
push eax
mov eax, dword [esi + 0x704]
push ecx
mov ecx, dword [edx + eax + 0x28]
push ecx
call edi
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul edx, edx, 0xb4
mov dword [edx + ecx + 0x38], eax
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0x510]
imul ecx, ecx, 0xb4
mov eax, dword [esi + 0x500]
push edx
mov edx, dword [esi + 0x704]
push eax
mov eax, dword [ecx + edx + 0x24]
push eax
call edi
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
mov dword [ecx + edx + 0x34], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esi + 0x704]
imul eax, eax, 0xb4
xor ecx, ecx
mov dword [eax + edx + 0x48], ecx
mov eax, dword [esp + 0x10]
mov edx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov dword [eax + edx + 0x4c], ecx
mov eax, dword [esp + 0x10]
mov edx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov dword [eax + edx + 0x50], ecx
mov eax, dword [esp + 0x10]
mov edx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov dword [eax + edx + 0x54], ecx
mov eax, dword [esp + 0x10]
mov edx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov dword [eax + edx + 0x44], ecx
mov eax, dword [esp + 0x10]
mov edx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov dword [eax + edx + 0x80], ecx
mov eax, dword [esp + 0x10]
mov edx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov dword [eax + edx + 0x7c], ecx
mov eax, dword [esp + 0x10]
mov edx, dword [esi + 0x704]
imul eax, eax, 0xb4
and dword [eax + edx + 0x90], 0xfffffffd
cmp dword [esp + 0xd4], ecx
lea eax, [eax + edx + 0x90]
je 0x55310f
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0xb4]
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x9c]
add edx, ecx
mov ecx, dword [esp + 0x88]
push edx
push eax
push ecx
push esi
call fcn.00550c30
add esp, 0x14
mov ecx, dword [esp + 0x10]
mov eax, dword [esi + 0x704]
mov edx, ecx
imul edx, edx, 0xb4
add eax, edx
mov edx, dword [eax + 0x28]
add edx, dword [eax + 0x18]
mov dword [esp + 0x13c], edx
mov edx, dword [eax + 0x38]
add edx, dword [eax + 0x20]
add ecx, 1
mov dword [esp + 0xb8], edx
mov dword [esp + 0x10], ecx
push ecx
jmp 0x55335c
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov dword [eax + ecx], 0
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x704]
imul edx, edx, 0xb4
mov ecx, dword [esp + 0x4c]
mov dword [edx + eax + 0x40], ecx
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x704]
imul edx, edx, 0xb4
mov ecx, dword [esp + 0x9c]
mov dword [edx + eax + 4], ecx
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x704]
imul edx, edx, 0xb4
mov ecx, dword [esp + 0xb4]
mov dword [edx + eax + 8], ecx
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
imul ecx, ecx, 0xb4
mov eax, dword [esp + 0x2c]
add eax, edx
mov edx, dword [esi + 0x704]
mov dword [ecx + edx + 0x18], eax
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xe4]
imul edx, edx, 0xb4
mov ecx, dword [esp + 0xe8]
add ecx, eax
mov eax, dword [esi + 0x704]
mov dword [edx + eax + 0x20], ecx
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
mov eax, dword [esp + 0x34]
mov dword [ecx + edx + 0x14], eax
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
cmp ebp, 1
mov eax, dword [esp + 0x38]
mov dword [ecx + edx + 0x24], eax
je 0x553255
mov ecx, dword [esp + 0xa0]
add ecx, 1
cmp ecx, ebp
je 0x553255
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x704]
imul edx, edx, 0xb4
mov ecx, dword [esp + 0x3c]
add dword [edx + eax + 0x24], ecx
lea eax, [edx + eax + 0x24]
jmp 0x5532e3
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x704]
imul edx, edx, 0xb4
cmp dword [esi + 0x654], 0
je 0x5532a4
mov ecx, dword [esp + 0xc8]
sub ecx, dword [eax + edx + 0x14]
add eax, edx
sub ecx, dword [esi + 0x564]
mov dword [eax + 0x24], ecx
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x704]
imul edx, edx, 0xb4
mov ecx, dword [esp + 0xc4]
mov dword [edx + eax + 0x80], ecx
jmp 0x5532b3
or dword [edx + eax + 0x8c], 1
lea eax, [edx + eax + 0x8c]
mov ecx, dword [esp + 0xa0]
add ecx, 1
cmp ecx, ebp
jne 0x5532e3
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x704]
imul edx, edx, 0xb4
or dword [edx + eax + 0x8c], 0x200
lea eax, [edx + eax + 0x8c]
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
mov eax, dword [esp + 0x44]
mov dword [ecx + edx + 0x28], eax
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
mov eax, dword [esp + 0x100]
mov dword [ecx + edx + 0x38], eax
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
cmp dword [esp + 0x74], 0
mov eax, dword [esp + 0x100]
mov dword [ecx + edx + 0x30], eax
je 0x553350
mov ecx, dword [esp + 0x10]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
mov dword [ecx + edx + 0x68], 1
mov eax, dword [esp + 0x10]
add eax, 1
mov dword [esp + 0x10], eax
push eax
push esi
call fcn.004bba60
add esp, 8
test eax, eax
jne 0x553379
push 1
push str.Ran_Out_of_Text_Frame_Table__CreateFrames_4_
push esi
call fcn.004e7a10
add esp, 0xc
mov edi, dword [esp + 0x88]
xor edx, edx
cmp edi, edx
mov dword [esp + 0x9c], ebx
je 0x5533a1
cmp dword [esp + 0x8c], edx
jne 0x5533a1
mov dword [esp + 0x100], edx
mov dword [esp + 0x44], edx
cmp dword [esp + 0x68], edx
jne 0x55342c
cmp ebx, dword [esi + 0x5e4]
jge 0x55342c
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x44]
lea ebp, [eax + ecx]
add ebp, dword [esp + 0x24]
cmp ebp, dword [esp + 0x6c]
jle 0x55342c
cmp eax, edx
jg 0x5533d0
cmp ecx, edx
jle 0x55342c
mov eax, dword [esp + 0x78]
cmp eax, dword [esp + 0x18]
jne 0x55342c
cmp ebx, eax
jg 0x55342c
mov eax, dword [esp + 0x70]
cmp eax, dword [esp + 0x94]
jl 0x55342c
cmp dword [esi + 0x3a04], edx
jne 0x55342c
mov ecx, dword [esi + 0x3a10]
mov edx, dword [esp + 0x1c]
add ecx, edx
test byte [ecx + 0x70], 1
jne 0x55342c
lea eax, [ebx - 1]
mov dword [ecx + 4], eax
mov ecx, dword [esi + 0x3a10]
mov dword [edx + ecx + 0x48], ebx
mov ecx, dword [esi + 0x3a10]
and dword [edx + ecx + 0x70], 0xfffffffe
lea ecx, [edx + ecx + 0x70]
mov dword [esp + 0x18], eax
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xe8]
add eax, dword [esp + 0x44]
add ecx, dword [esp + 0x100]
cmp eax, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
mov dword [esp + 0xe8], ecx
jle 0x553457
mov dword [esp + 0x30], eax
cmp ecx, dword [esp + 0xec]
jle 0x553467
mov dword [esp + 0xec], ecx
mov ebp, dword [esp + 0x74]
xor edx, edx
cmp ebp, edx
je 0x55347c
mov dword [esp + 0xe8], edx
mov dword [esp + 0x2c], edx
cmp ebp, edx
mov dword [esp + 0x100], edx
mov dword [esp + 0x44], edx
je 0x5534a5
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
add eax, ecx
add eax, dword [esp + 0x3c]
mov ecx, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x34], ecx
jmp 0x5534ad
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
cmp edi, edx
je 0x5534bc
add eax, dword [esp + 0x16c]
mov dword [esp + 0x40], eax
cmp dword [esp + 0xb0], edx
jne 0x5534c9
mov dword [esp + 0x40], ecx
cmp dword [esp + 0x8c], edx
je 0x5534d6
mov dword [esp + 0x40], ecx
cmp ebp, edx
je 0x553674
cmp dword [esp + 0xac], 0
jne 0x553674
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0xa4]
add eax, 0xffffffff
cmp eax, edi
jl 0x553674
mov edx, dword [esi + 0x704]
mov ecx, eax
imul ecx, ecx, 0xb4
lea ecx, [ecx + edx + 0x70]
cmp dword [ecx + 0x18], 0
jne 0x55351f
cmp dword [ecx], 0
je 0x553531
sub eax, 1
sub ecx, 0xb4
cmp eax, edi
jge 0x553514
jmp 0x553674
cmp eax, edi
jl 0x553674
mov ecx, dword [esp + 0x10]
imul eax, eax, 0xb4
imul ecx, ecx, 0xb4
mov dword [ecx + edx], 1
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul edx, edx, 0xb4
mov dword [edx + ecx + 0x68], 1
mov edi, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul edi, edi, 0xb4
mov edx, dword [ecx + eax + 0x28]
add edx, dword [ecx + eax + 0x18]
mov dword [edi + ecx + 0x18], edx
mov edi, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul edi, edi, 0xb4
mov edx, dword [ecx + eax + 0x38]
add edx, dword [ecx + eax + 0x20]
mov dword [edi + ecx + 0x20], edx
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul edx, edx, 0xb4
mov edi, dword [ecx + eax + 0x14]
mov dword [edx + ecx + 0x14], edi
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul edx, edx, 0xb4
mov eax, dword [ecx + eax + 0x24]
mov dword [edx + ecx + 0x24], eax
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x704]
imul edx, edx, 0xb4
xor ecx, ecx
mov dword [edx + eax + 0x28], ecx
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x704]
imul edx, edx, 0xb4
mov dword [edx + eax + 0x38], ecx
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x704]
imul edx, edx, 0xb4
add eax, edx
mov edx, dword [eax - 0x74]
mov dword [eax + 0x40], edx
cmp dword [esi + 0x654], ecx
jne 0x55364b
mov eax, dword [esp + 0x94]
cmp eax, 1
je 0x55362c
cmp dword [esp + 0x70], eax
jne 0x55364b
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
or dword [eax + ecx + 0x8c], 1
lea eax, [eax + ecx + 0x8c]
mov eax, dword [esp + 0x10]
add eax, 1
push eax
push esi
mov dword [esp + 0x18], eax
call fcn.004bba60
add esp, 8
test eax, eax
jne 0x553674
push 1
push 0x5eb148
push esi
call fcn.004e7a10
add esp, 0xc
test ebp, ebp
mov eax, dword [esp + 0x70]
mov dword [esp + 0xa0], eax
je 0x5536a4
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
mov dword [esp + eax*4 + 0x1f8], edx
mov edx, dword [esp + 0x38]
mov dword [esp + eax*4 + 0x248], ecx
mov dword [esp + eax*4 + 0x1a8], edx
cmp ebx, dword [esp + 0x78]
jg 0x553916
mov eax, dword [esp + 0x98]
cmp dword [esi + 0x730], eax
je 0x55371e
mov ecx, dword [esp + 0x324]
mov edx, dword [esp + 0xa8]
push ecx
push edx
push ebx
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x2e8]
push edx
lea ecx, [esp + 0x2ac]
push ecx
lea edx, [esp + 0xfc]
push edx
lea ecx, [esp + 0x44]
push ecx
push eax
push esi
call fcn.0054fa00
add esp, 0x28
cmp dword [esi + 0x730], 0
jle 0x553713
mov edx, dword [esp + 0x10]
add edx, 0xffffffff
mov dword [esp + 0x84], edx
jmp 0x55371e
mov dword [esp + 0x84], 0
cmp ebx, dword [esi + 0x5e4]
jge 0x55390c
push ebx
push esi
call fcn.005132c0
add esp, 8
test eax, eax
jle 0x553893
push ebx
push 0
push esi
call fcn.00513250
mov ecx, dword [esi + 0x588c]
mov edx, dword [esi + 0x510]
mov dword [esp + 0xc8], eax
imul eax, eax, 0x84
mov edi, dword [eax + ecx + 4]
mov eax, dword [esi + 0x5884]
imul edi, edi, 0x68
mov ecx, dword [eax + edi + 0x20]
add esp, 0xc
push 0x5a0
push edx
push ecx
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov edx, dword [esi + 0x5884]
mov edi, dword [edx + edi + 8]
mov ebp, eax
add ebp, dword [esp + 0x34]
test edi, edi
jle 0x5537cf
cmp edi, dword [esp + 0xbc]
je 0x5537cf
mov eax, dword [esi + 0x510]
imul edi, edi, 0x84
mov ecx, dword [esi + 0x588c]
mov edx, dword [edi + ecx + 0x14]
push 0x5a0
push eax
push edx
call dword [sym.imp.KERNEL32.dll_MulDiv]
add ebp, eax
mov eax, dword [esi + 0x588c]
mov edi, dword [edi + eax + 8]
test edi, edi
jg 0x553793
mov ecx, dword [esi + 0x138]
mov edx, dword [ecx + ebx*4]
mov eax, dword [edx + 0x30]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x7c]
push eax
push ecx
mov ecx, dword [esp + 0xa8]
push edx
mov edx, dword [esp + 0x5c]
lea eax, [esp + 0xe4]
push eax
mov eax, dword [esp + 0x58]
push ecx
mov ecx, dword [esp + 0x70]
push edx
mov edx, dword [esp + 0x70]
push eax
mov eax, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x120]
push edx
mov edx, dword [esp + 0x10c]
push eax
mov eax, dword [esp + 0x6c]
add edx, ecx
add edx, dword [esp + 0x10c]
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x78]
add ecx, eax
add ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x350]
push ecx
push edx
push eax
push ebp
lea ecx, [esp + 0x17c]
push ecx
lea edx, [esp + 0x50]
push edx
push 0
push ebx
push esi
call fcn.0057a460
mov ecx, dword [esi + 0x514]
mov edx, dword [esi + 0x504]
add esp, 0x50
push ecx
mov ebx, eax
mov eax, dword [esp + 0x144]
add dword [esp + 0x48], eax
push edx
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
add dword [esp + 0x100], eax
add ebx, 1
xor ebp, ebp
jmp 0x552980
cmp ebx, dword [esi + 0x5e4]
jge 0x55390c
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0xa4]
push ecx
mov ecx, dword [esp + 0x58]
lea edx, [esp + 0xe0]
push edx
mov edx, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x6c]
push ecx
mov ecx, dword [esp + 0x6c]
push edx
mov edx, dword [esp + 0x6c]
push eax
mov eax, dword [esp + 0x340]
push ecx
push edx
mov edx, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x54]
lea ecx, [esp + 0x170]
push ecx
push edx
push eax
mov eax, dword [esp + 0x118]
lea ecx, [esp + 0x134]
push ecx
mov ecx, dword [esp + 0x60]
lea edx, [esp + 0x7c]
push edx
push eax
push ecx
push ebx
push esi
call fcn.00550350
add esp, 0x4c
add ebx, 1
xor ebp, ebp
jmp 0x552980
cmp dword [esp + 0x74], 0
jne 0x553944
add dword [esp + 0x70], 1
cmp dword [esi + 0x654], 0
jne 0x553944
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x704]
imul edx, edx, 0xb4
or dword [eax + edx - 0x28], 1
lea eax, [eax + edx - 0x28]
mov eax, dword [esp + 0x98]
test eax, eax
jle 0x55398c
mov ecx, dword [esp + 0x324]
mov edx, dword [esp + 0xa8]
push ecx
push edx
push ebx
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x2e8]
push edx
lea ecx, [esp + 0x2ac]
push ecx
lea edx, [esp + 0xfc]
push edx
lea ecx, [esp + 0x44]
push ecx
push eax
push esi
call fcn.0054fa00
add esp, 0x28
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0xa4]
xor edi, edi
xor ebp, ebp
cmp ebx, eax
mov dword [esi + 0x70c], eax
mov dword [esp + 0x24], edi
mov dword [esp + 0xac], ebp
jge 0x553a16
mov eax, dword [esi + 0x704]
mov edi, dword [esi + 0x70c]
mov edx, ebx
imul edx, edx, 0xb4
lea eax, [edx + eax + 0x18]
sub edi, ebx
lea ebx, [ebx]
mov edx, dword [eax + 0x50]
test edx, edx
je 0x553a08
mov ebp, dword [eax]
mov ecx, dword [eax + 0x10]
add ecx, ebp
mov ebp, dword [esp + 0xac]
cmp ecx, ebp
jle 0x5539f2
mov ebp, ecx
mov dword [esp + 0xac], ebp
test edx, edx
je 0x553a08
mov edx, dword [eax + 0x20]
mov ecx, dword [eax + 8]
add ecx, edx
cmp ecx, dword [esp + 0x24]
jle 0x553a08
mov dword [esp + 0x24], ecx
add eax, 0xb4
sub edi, 1
jne 0x5539d0
mov edi, dword [esp + 0x24]
cmp dword [esp + 0x7c], 3
jne 0x553a7b
cmp dword [esp + 0x70], 2
jl 0x553a7b
cmp dword [esi + 0x654], 0
je 0x553a59
mov edx, dword [esp + 0x48]
mov eax, dword [esi + 0x39c4]
imul edx, edx, 0x70
fld dword [edx + eax + 0x60]
fimul dword [esi + 0x514]
call fcn.005ac350
sub eax, dword [esp + 0x60]
sub eax, dword [esp + 0x64]
add eax, dword [esi + 0x568]
jmp 0x553a6d
cmp dword [esi + 0x5b84], 0
mov eax, dword [esp + 0x80]
je 0x553a6d
sub eax, dword [esp + 0x60]
mov ecx, dword [esi + 0x528]
add eax, ecx
cmp ebp, eax
jle 0x553a7b
mov ebp, eax
cmp ebx, dword [esp + 0x10]
mov edx, ebx
jge 0x553acc
imul ebx, ebx, 0xb4
mov eax, ebx
jmp 0x553a90
mov ecx, dword [esi + 0x704]
add ecx, eax
cmp dword [ecx + 0x68], 0
je 0x553aa6
mov ebx, ebp
sub ebx, dword [ecx + 0x18]
mov dword [ecx + 0x28], ebx
mov ecx, dword [esi + 0x704]
add ecx, eax
cmp dword [ecx + 0x68], 0
je 0x553abc
mov ebx, edi
sub ebx, dword [ecx + 0x20]
mov dword [ecx + 0x38], ebx
add edx, 1
add eax, 0xb4
cmp edx, dword [esi + 0x70c]
jl 0x553a90
mov edi, dword [esp + 0x94]
mov ebx, dword [esp + 0x70]
cmp ebx, edi
jge 0x553c55
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov dword [eax + ecx], 1
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov ebp, dword [esp + 0x28]
mov dword [eax + ecx + 0x18], ebp
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov ebp, dword [esp + 0xe4]
mov dword [eax + ecx + 0x20], ebp
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov ebp, dword [esp + 0x34]
mov dword [eax + ecx + 0x14], ebp
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xc8]
imul ecx, ecx, 0xb4
sub eax, dword [esp + 0x34]
mov ebp, dword [esi + 0x704]
sub eax, dword [esi + 0x564]
mov dword [ecx + ebp + 0x24], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov ebp, dword [esp + 0x30]
mov dword [eax + ecx + 0x28], ebp
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov ebp, dword [esp + 0xec]
mov dword [eax + ecx + 0x38], ebp
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov ebp, dword [esp + 0x4c]
mov dword [eax + ecx + 0x40], ebp
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov dword [eax + ecx + 0x68], 1
cmp dword [esi + 0x654], 0
jne 0x553bed
mov eax, dword [esi + 0x704]
imul edx, edx, 0xb4
or dword [edx + eax + 0x8c], 1
lea eax, [edx + eax + 0x8c]
mov ecx, dword [esp + 0x10]
mov eax, dword [esi + 0x704]
mov edx, ecx
imul edx, edx, 0xb4
mov edx, dword [edx + eax + 0x24]
add dword [esp + 0x34], edx
mov eax, edi
mov edi, dword [esp + 0x38]
sub eax, ebx
lea edx, [eax - 1]
imul edi, eax
imul edx, dword [esp + 0x3c]
add ecx, 1
add edx, edi
push ecx
push esi
mov dword [esp + ebx*4 + 0x1b0], edx
lea edi, [ebx + 1]
mov dword [esp + 0x18], ecx
call fcn.004bba60
add esp, 8
test eax, eax
jne 0x553c4b
push 1
push 0x5eb148
push esi
call fcn.004e7a10
add esp, 0xc
mov eax, dword [esp + 0x10]
mov dword [esi + 0x70c], eax
cmp edi, 1
jle 0x553cb6
mov edx, dword [esp + 0x4c]
mov ecx, dword [esi + 0x5ac]
imul edx, edx, 0x98
mov eax, dword [esi + 0x39c0]
push ecx
mov ecx, dword [edx + eax + 0x80]
push ecx
push 0
push 0
push esi
call fcn.004a9ad0
add esp, 0x14
test eax, eax
je 0x553cb6
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
push edi
push edx
push eax
lea ecx, [esp + 0x1b4]
push ecx
lea edx, [esp + 0x258]
push edx
lea eax, [esp + 0x20c]
push eax
push esi
call fcn.0054f670
add esp, 0x1c
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0xec]
mov eax, dword [esp + 0x18]
add dword [esp + 0x28], ecx
add dword [esp + 0xe4], edx
cmp dword [esp + 0x78], eax
jge 0x553cea
mov ecx, dword [esp + 0x78]
add ecx, 1
mov dword [esp + 0x14], ecx
mov edi, eax
mov ebx, ecx
jmp 0x5525ab
mov eax, dword [esp + 0x48]
mov ebp, dword [esp + 0x68]
xor ebx, ebx
cmp dword [esp + 0xd8], ebx
mov dword [esp + 0x4c], eax
je 0x553d35
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x174]
push ebp
push edx
mov edx, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x60]
push edx
mov edx, dword [esp + 0x68]
push eax
mov eax, dword [esp + 0x33c]
push ecx
push edx
push eax
push esi
call fcn.004bc6d0
add esp, 0x28
mov eax, dword [esp + 0x7c]
cmp eax, 3
jne 0x553de2
mov eax, dword [esp + 0x160]
cmp eax, dword [esi + 0x70c]
mov ebx, dword [esp + 0xd0]
mov edi, eax
jge 0x553dc9
mov ebp, dword [esi + 0x704]
imul eax, eax, 0xb4
lea edx, [eax + ebp + 0x88]
lea ecx, [ecx]
cmp dword [edx - 0x88], 0
jne 0x553db4
cmp dword [edx - 0x60], 0
je 0x553db4
mov eax, dword [edx]
test eax, eax
je 0x553d9d
mov ecx, dword [esi + 0x72c]
imul eax, eax, 0x98
cmp dword [eax + ecx + 0x48], 0
jne 0x553d9d
mov eax, dword [edx + 0x20]
jmp 0x553d9f
mov eax, edi
imul eax, eax, 0xb4
lea ecx, [eax + ebp]
mov eax, dword [ecx + 0x28]
add eax, dword [ecx + 0x18]
cmp eax, ebx
jle 0x553db4
mov ebx, eax
add edi, 1
add edx, 0xb4
cmp edi, dword [esi + 0x70c]
jl 0x553d70
mov ebp, dword [esp + 0x68]
sub ebx, dword [esp + 0xd0]
mov edx, dword [esi + 0x3a10]
mov eax, dword [esp + 0x1c]
mov dword [eax + edx + 0x20], ebx
xor ebx, ebx
jmp 0x553deb
cmp eax, 2
je 0x551cb0
mov ecx, dword [esi + 0x70c]
push ecx
push esi
call fcn.004bba60
add esp, 8
test eax, eax
jne 0x553e0f
push 1
push str.Ran_Out_of_Text_Frame_Table__CreateFrames_7_
push esi
call fcn.004e7a10
add esp, 0xc
mov edx, dword [esi + 0x70c]
mov eax, dword [esi + 0x704]
imul edx, edx, 0xb4
mov dword [edx + eax], 1
mov ecx, dword [esi + 0x70c]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
mov eax, dword [esp + 0x28]
mov dword [ecx + edx + 0x18], eax
mov ecx, dword [esi + 0x70c]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
mov eax, dword [esp + 0xe4]
mov dword [ecx + edx + 0x20], eax
mov ecx, dword [esi + 0x70c]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
mov eax, dword [esp + 0x20]
mov dword [ecx + edx + 0x24], eax
mov ecx, dword [esi + 0x70c]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
mov dword [ecx + edx + 0x14], ebx
mov eax, dword [esi + 0x70c]
cmp eax, ebx
jle 0x553ead
mov edx, dword [esi + 0x704]
mov ecx, eax
imul ecx, ecx, 0xb4
mov ecx, dword [ecx + edx - 0x74]
jmp 0x553eaf
xor ecx, ecx
mov edx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov dword [eax + edx + 0x40], ecx
cmp dword [esi + 0x654], ebx
je 0x553fed
mov ecx, dword [esi + 0x70c]
mov eax, dword [esi + 0x564]
imul ecx, ecx, 0xb4
add eax, dword [esp + 0x50]
mov edx, dword [esi + 0x704]
mov dword [ecx + edx + 0x14], eax
mov eax, dword [esi + 0x70c]
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov edx, dword [esp + 0xc4]
add dword [eax + ecx + 0x24], edx
lea eax, [eax + ecx + 0x24]
mov edi, ebp
and edi, 0x1000
je 0x553f28
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
add eax, ecx
add eax, dword [esi + 0x568]
jmp 0x553f8e
test ebp, 0x2000
je 0x553f58
mov edx, dword [esp + 0x4c]
mov eax, dword [esi + 0x39c4]
imul edx, edx, 0x70
fld dword [edx + eax + 0x60]
fimul dword [esi + 0x514]
call fcn.005ac350
sub eax, dword [esp + 0x60]
add eax, dword [esi + 0x568]
jmp 0x553f8e
mov ecx, dword [esp + 0x4c]
mov edx, dword [esi + 0x39c4]
imul ecx, ecx, 0x70
fld dword [ecx + edx + 0x60]
fimul dword [esi + 0x514]
call fcn.005ac350
sub eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
sub eax, ecx
add eax, dword [esi + 0x568]
cmp dword [esi + 0x5b84], ebx
jne 0x553f8e
add eax, ecx
cmp edi, ebx
je 0x553fb3
mov ecx, dword [esi + 0x70c]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
or dword [ecx + edx + 0x8c], 2
lea ecx, [ecx + edx + 0x8c]
cmp dword [esi + 0x5b84], ebx
je 0x554085
cmp ebp, ebx
jne 0x554085
mov ecx, dword [esi + 0x70c]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
or dword [ecx + edx + 0x8c], 2
lea ecx, [ecx + edx + 0x8c]
jmp 0x554085
test ebp, 0x1000
je 0x554003
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x54]
add eax, dword [esp + 0x5c]
jmp 0x55402f
test ebp, 0x2000
jne 0x554028
cmp dword [esi + 0x5b84], ebx
je 0x554028
mov eax, dword [esp + 0x54]
sub eax, dword [esp + 0x60]
sub eax, dword [esp + 0x64]
add eax, dword [esp + 0x80]
jmp 0x55402f
mov eax, dword [esp + 0x80]
mov ecx, dword [esi + 0x70c]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
or dword [ecx + edx + 0x8c], 3
lea ecx, [ecx + edx + 0x8c]
mov ecx, dword [esi + 0x3a10]
mov edx, dword [esp + 0x1c]
cmp dword [edx + ecx + 0x24], ebx
jle 0x554085
cmp ebp, ebx
jne 0x554085
mov ecx, dword [esi + 0x70c]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
and dword [ecx + edx + 0x8c], 0xfffffffd
lea ecx, [ecx + edx + 0x8c]
test dword [esi + 0xa160], 0x2000
je 0x554099
cmp dword [esi + 0x3a58], ebx
je 0x5540c5
cmp dword [esi + 0x20], ebx
je 0x554135
mov ecx, dword [esi + 0x39e8]
sub ecx, 1
cmp dword [esp + 0x324], ecx
jge 0x5540c5
mov edx, dword [esi + 0x3a10]
mov ecx, dword [esp + 0x1c]
test byte [ecx + edx + 0x70], 1
jne 0x554135
mov edx, dword [esi + 0x70c]
mov eax, dword [esi + 0x704]
imul edx, edx, 0xb4
mov dword [edx + eax + 0x38], ebx
mov ecx, dword [esi + 0x70c]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
mov eax, dword [esp + 0x13c]
mov dword [ecx + edx + 0x28], ebx
mov ecx, dword [esp + 0x28]
cmp ecx, eax
jge 0x554118
mov edx, dword [esi + 0x704]
sub eax, ecx
mov ecx, dword [esi + 0x70c]
imul ecx, ecx, 0xb4
mov dword [ecx + edx + 0x28], eax
mov ecx, dword [esp + 0xe4]
mov eax, dword [esp + 0xb8]
cmp ecx, eax
jge 0x554297
sub eax, ecx
jmp 0x554281
mov edx, dword [esi + 0x70c]
mov edi, dword [esi + 0x704]
imul edx, edx, 0xb4
mov ebx, dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, eax
sub ecx, dword [esp + 0x28]
add ecx, dword [esi + 0x528]
mov dword [edx + edi + 0x28], ecx
mov ecx, dword [esi + 0x514]
mov edx, dword [esi + 0x504]
push ecx
push edx
push eax
call ebx
mov edx, dword [esi + 0x70c]
mov ecx, dword [esp + 0xcc]
imul edx, edx, 0xb4
sub ecx, dword [esp + 0xe4]
add eax, ecx
test ebp, ebp
mov ecx, dword [esi + 0x704]
mov dword [edx + ecx + 0x38], eax
jne 0x5541fb
mov edx, dword [esi + 0x3a10]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + edx + 0x24]
test ecx, ecx
jle 0x5541fb
mov edx, dword [esi + 0x70c]
mov eax, dword [esi + 0x704]
imul edx, edx, 0xb4
sub dword [edx + eax + 0x28], ecx
mov ecx, dword [esi + 0x70c]
lea eax, [edx + eax + 0x28]
imul ecx, ecx, 0xb4
mov edx, dword [esi + 0x704]
mov eax, dword [esi + 0x514]
lea edi, [ecx + edx + 0x38]
mov ecx, dword [esi + 0x504]
mov edx, dword [esi + 0x3a10]
push eax
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [eax + edx + 0x24]
push ecx
call ebx
sub dword [edi], eax
mov edx, dword [esi + 0x514]
push 0x5a0
push edx
push 0x28
call ebx
mov ecx, dword [esi + 0x70c]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
cmp dword [ecx + edx + 0x28], eax
jge 0x554249
mov eax, dword [esi + 0x514]
push 0x5a0
push eax
push 0x28
call ebx
mov ecx, dword [esi + 0x70c]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
mov dword [ecx + edx + 0x28], eax
mov eax, dword [esi + 0x504]
push 0x5a0
push eax
push 0x28
call ebx
mov ecx, dword [esi + 0x70c]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
cmp dword [ecx + edx + 0x38], eax
jge 0x554297
mov eax, dword [esi + 0x504]
push 0x5a0
push eax
push 0x28
call ebx
mov ecx, dword [esi + 0x70c]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
mov dword [ecx + edx + 0x38], eax
mov eax, dword [esi + 0x70c]
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov edx, dword [eax + ecx + 0x28]
add dword [esp + 0x28], edx
mov edx, dword [eax + ecx + 0x38]
add dword [esp + 0xe4], edx
add eax, ecx
cmp dword [esp + 0x7c], 3
jne 0x5543e0
mov ebp, dword [esp + 0x90]
test ebp, ebp
jl 0x5543e0
mov eax, dword [eax + 0x28]
test eax, eax
jle 0x5543e0
mov edx, dword [esi + 0x39c0]
mov edi, eax
mov eax, dword [esp + 0x48]
imul eax, eax, 0x98
test byte [eax + edx + 0x28], 0x80
je 0x554305
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov edi, eax
mov ebx, ebp
imul ebx, ebx, 0xb4
mov dword [ecx + ebx + 0x28], edi
mov eax, dword [esi + 0x514]
mov ecx, dword [esi + 0x504]
push eax
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov edx, dword [esi + 0x704]
mov dword [ebx + edx + 0x38], eax
lea eax, [ebp + 1]
cmp eax, dword [esi + 0x70c]
mov dword [esp + 0x24], eax
jg 0x554399
mov ebx, eax
imul ebx, ebx, 0xb4
jmp 0x554350
mov eax, dword [esi + 0x704]
add dword [eax + ebx + 0x18], edi
mov edx, dword [esi + 0x514]
mov ecx, dword [esi + 0x704]
lea eax, [eax + ebx + 0x18]
mov eax, dword [esi + 0x504]
push edx
push eax
push edi
lea ebp, [ecx + ebx + 0x20]
call dword [sym.imp.KERNEL32.dll_MulDiv]
add dword [ebp], eax
mov eax, dword [esp + 0x24]
add eax, 1
add ebx, 0xb4
cmp eax, dword [esi + 0x70c]
mov dword [esp + 0x24], eax
jle 0x554350
mov ecx, dword [esi + 0x70c]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0xb4
sub dword [ecx + edx + 0x28], edi
lea eax, [ecx + edx + 0x28]
mov eax, dword [esi + 0x70c]
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov edx, dword [esi + 0x514]
lea ebx, [eax + ecx + 0x38]
mov eax, dword [esi + 0x504]
push edx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_MulDiv]
sub dword [ebx], eax
mov ebp, 1
add dword [esi + 0x70c], ebp
mov eax, dword [esi + 0x70c]
push eax
push esi
call fcn.004bba60
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0x32c]
add esp, 8
test edi, edi
jne 0x554443
mov ecx, dword [esi + 0x3a10]
mov edx, dword [esp + 0x1c]
cmp dword [edx + ecx + 0x24], edi
jle 0x554443
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x20]
push eax
push ecx
push edx
lea eax, [esp + 0xf0]
push eax
lea ecx, [esp + 0x38]
push ecx
push ebx
push esi
call fcn.004bc510
add esp, 0x1c
mov edx, dword [esi + 0x3a10]
mov eax, dword [esp + 0x1c]
and dword [eax + edx + 0x28], 0xfffffff7
cmp dword [esi + 0x654], 0
lea eax, [eax + edx + 0x28]
jne 0x554468
cmp dword [esi + 0x3a58], 0
je 0x5544a0
cmp dword [esi + 0x5b84], 0
je 0x554479
test edi, 0x2000
je 0x5544a0
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x14c]
push ecx
mov ecx, dword [esp + 0x16c]
push edx
push eax
push ecx
push ebx
push esi
call fcn.004bc300
add esp, 0x18
mov eax, dword [esp + 0x7c]
cmp eax, ebp
jne 0x554510
mov edx, dword [esp + 0x48]
mov eax, dword [esi + 0x39c0]
imul edx, edx, 0x98
test byte [edx + eax + 0x28], 8
je 0x551cb0
push ebp
push ebp
push ebx
push esi
call fcn.00526180
push ebp
push 0
push ebx
push esi
mov edi, eax
call fcn.00526180
mov ecx, dword [esi + 0x514]
mov edx, dword [esi + 0x504]
add esp, 0x20
push ecx
sub edi, eax
push edx
sub dword [esp + 0x30], edi
push edi
call dword [sym.imp.KERNEL32.dll_MulDiv]
sub dword [esp + 0xe4], eax
test edi, edi
je 0x551cb0
mov dword [esi + 0x698], ebp
jmp 0x551cb0
cmp eax, 3
jne 0x554558
mov eax, dword [esp + 0x48]
mov ecx, dword [esi + 0x39c0]
imul eax, eax, 0x98
test byte [eax + ecx + 0x28], 0x10
je 0x551cb0
push ebp
push ebx
push esi
call fcn.005262b0
push 0
push ebx
push esi
mov edi, eax
call fcn.005262b0
mov edx, dword [esi + 0x514]
add esp, 0x18
sub edi, eax
mov eax, dword [esi + 0x504]
push edx
push eax
jmp 0x5544eb
cmp eax, 4
jl 0x551cb0
cmp dword [esi + 0x654], 0
je 0x554598
mov ecx, dword [esp + 0x158]
mov edx, dword [esp + 0xe0]
push ecx
push edx
mov edx, dword [esp + 0x32c]
lea eax, [esp + 0xec]
push eax
lea ecx, [esp + 0x34]
push ecx
push edx
push esi
call fcn.004bc070
add esp, 0x18
mov eax, dword [esp + 0x328]
mov ebp, dword [esp + 0x324]
cmp ebp, eax
jl 0x5545b2
cmp dword [esi + 0x530], eax
jne 0x554607
mov eax, dword [esi + 0x70c]
test eax, eax
mov dword [esi + 0x52c], eax
jle 0x5545f6
mov ecx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov edx, dword [eax + ecx - 0x9c]
add edx, dword [eax + ecx - 0x8c]
add eax, ecx
mov dword [esi + 0x528], edx
mov ecx, dword [eax - 0x94]
add ecx, dword [eax - 0x7c]
mov dword [esp + 0xcc], ecx
jmp 0x55460e
xor ecx, ecx
mov dword [esp + 0xcc], ecx
mov dword [esi + 0x528], ecx
jmp 0x55460e
mov ecx, dword [esp + 0xcc]
cmp ebp, dword [esi + 0x530]
je 0x554649
mov eax, dword [esi + 0x70c]
test eax, eax
je 0x554649
mov edx, dword [esi + 0x704]
imul eax, eax, 0xb4
mov edi, dword [esp + 0x1c]
add eax, edx
mov edx, dword [eax - 0x94]
add edx, dword [eax - 0x7c]
mov eax, dword [esi + 0x3a10]
sub edx, ecx
mov dword [edi + eax + 0x14], edx
jmp 0x554657
mov edx, dword [esi + 0x3a10]
mov edi, dword [esp + 0x1c]
mov dword [edi + edx + 0x14], ecx
mov eax, dword [esi + 0x3a10]
mov ecx, dword [esp + 0xc0]
mov dword [edi + eax + 0x18], 0
cmp ecx, dword [esi + 0x70c]
mov ebx, ecx
jge 0x554716
imul ecx, ecx, 0xb4
mov edx, dword [esi + 0x704]
cmp dword [edx + ecx], 0
lea eax, [edx + ecx]
jne 0x5546b4
test dword [eax + 0x8c], 0x1000
jne 0x5546b4
mov edx, dword [eax + 0x30]
add edx, dword [eax + 0x20]
mov ebp, dword [esi + 0x3a10]
cmp edx, dword [edi + ebp + 0x18]
jle 0x5546b4
mov edx, 1
jmp 0x5546b6
xor edx, edx
test dword [eax + 0x8c], 0x2000
je 0x5546c7
mov edx, 1
cmp dword [eax + 0x88], 0
je 0x5546d6
mov ebp, dword [eax + 0x38]
mov dword [eax + 0x30], ebp
test edx, edx
je 0x5546f3
mov eax, dword [esi + 0x704]
mov edx, dword [eax + ecx + 0x30]
add eax, ecx
add edx, dword [eax + 0x20]
mov eax, dword [esi + 0x3a10]
mov dword [edi + eax + 0x18], edx
add ebx, 1
add ecx, 0xb4
cmp ebx, dword [esi + 0x70c]
jl 0x554680
mov ebp, dword [esp + 0x324]
mov ecx, dword [esp + 0xc0]
cmp ecx, dword [esi + 0x52c]
jl 0x554745
mov ecx, dword [esi + 0x3a10]
mov edx, dword [esi + 0x514]
mov eax, dword [esi + 0x504]
push edx
lea ebx, [edi + ecx + 0x18]
mov ecx, dword [esi + 0x528]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_MulDiv]
sub dword [ebx], eax
mov edx, dword [esi + 0x3a10]
mov ecx, dword [esp + 0xdc]
cmp ecx, dword [edi + edx + 0x3c]
lea eax, [edi + edx]
je 0x55475f
or dword [eax + 0x28], 4
add ebp, 1
cmp ebp, dword [esp + 0x328]
mov dword [esp + 0x324], ebp
jg 0x55477e
cmp ebp, dword [esi + 0x39e8]
jl 0x5518e2
xor edi, edi
cmp dword [esi + 0x70c], edi
mov dword [esp + 0x20], edi
jle 0x554d00
cmp dword [esi + 0x654], 0
je 0x554845
mov edx, dword [esp + 0x48]
mov eax, dword [esi + 0x39c4]
imul edx, edx, 0x70
fld dword [edx + eax + 0x64]
fimul dword [esi + 0x510]
call fcn.005ac350
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esi + 0x52c]
mov ecx, dword [esp + 0x164]
jl 0x5547d3
mov ecx, dword [esp + 0x150]
mov edx, dword [esi + 0x704]
mov ebx, ecx
lea ecx, [edi + edx]
mov dword [esp + 0x50], ebx
cmp dword [ecx + 0x88], 0
jne 0x554845
cmp dword [ecx + 0xa4], 0
jne 0x554845
mov edx, dword [esi + 0x564]
add ebx, edx
cmp dword [ecx + 0x14], ebx
jne 0x554845
cmp dword [ecx + 0x70], 0
je 0x55480c
cmp dword [ecx], 0
je 0x554845
mov dword [ecx + 0x14], edx
mov ecx, dword [esi + 0x704]
mov edx, dword [esp + 0x50]
add dword [edi + ecx + 0x7c], edx
mov edx, dword [esp + 0x50]
lea ecx, [edi + ecx + 0x7c]
mov ecx, dword [esi + 0x704]
add dword [edi + ecx + 0x24], edx
lea ecx, [edi + ecx + 0x24]
mov ecx, dword [esi + 0x704]
cmp dword [edi + ecx + 0x24], eax
lea ecx, [edi + ecx + 0x24]
jle 0x554845
mov dword [ecx], eax
mov edx, dword [esi + 0x704]
cmp dword [edi + edx + 0x70], 0
lea eax, [edi + edx]
jle 0x554b28
cmp dword [eax], 0
jne 0x554b28
mov ebp, dword [eax + 0x70]
mov eax, dword [esi + 0x588c]
mov ebx, dword [esi + 0x530]
mov ecx, ebp
imul ecx, ecx, 0x84
mov edx, dword [eax + ecx + 4]
add eax, ecx
mov dword [esp + 0xdc], edx
mov edx, dword [esp + 0x20]
cmp edx, dword [esi + 0x52c]
mov dword [esp + 0x88], ebp
mov dword [esp + 0x24], ecx
jl 0x5548a0
add ebx, 1
cmp dword [eax + 0x44], 1
mov dword [esp + 0x90], ebx
jg 0x5548b3
test byte [eax + 0x40], 0x10
je 0x554901
mov eax, dword [esp + 0x90]
push eax
push 0
push ebp
push esi
call fcn.00526c30
mov ecx, dword [esi + 0x704]
add dword [edi + ecx + 0x28], eax
mov edx, dword [esi + 0x704]
lea ecx, [edi + ecx + 0x28]
mov ecx, dword [esi + 0x514]
add esp, 0x10
lea ebx, [edi + edx + 0x38]
mov edx, dword [esi + 0x504]
push ecx
push edx
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
add dword [ebx], eax
mov ebx, dword [esp + 0x90]
mov ecx, dword [esp + 0x24]
mov eax, dword [esi + 0x588c]
test byte [ecx + eax + 0x40], 0x10
je 0x554948
mov edx, dword [esi + 0x5890]
imul ebp, ebp, 0x34
mov eax, dword [edx + ebp + 8]
test eax, eax
jle 0x554948
cmp eax, dword [esi + 0x5898]
jge 0x554948
imul eax, eax, 0x34
cmp dword [eax + edx + 0x18], ebx
jge 0x554948
mov edx, dword [esi + 0x704]
or dword [edi + edx + 0x8c], 0x8000
lea eax, [edi + edx + 0x8c]
mov eax, dword [esi + 0x588c]
cmp dword [ecx + eax + 0x6c], 0
je 0x554976
mov edx, dword [esi + 0x704]
lea eax, [edi + edx]
mov edx, dword [eax + 0x74]
mov dword [eax + 0x7c], edx
mov eax, dword [esi + 0x704]
mov edx, dword [eax + edi + 0x78]
add eax, edi
mov dword [eax + 0x80], edx
mov eax, dword [esi + 0x588c]
test dword [ecx + eax + 0x40], 0x13000
je 0x554a7d
mov ecx, dword [esi + 0x704]
mov ebx, dword [edi + ecx + 4]
lea eax, [edi + ecx]
xor ebp, ebp
cmp ebx, dword [eax + 8]
mov dword [esp + 0xc0], ebp
jg 0x5549fd
jmp 0x5549b0
mov edx, dword [esi + 0x138]
mov eax, dword [edx + ebx*4]
add ebp, dword [eax + 0x18]
push ebx
push esi
call fcn.005132c0
mov ecx, dword [esi + 0x704]
add esp, 8
cmp eax, dword [edi + ecx + 0xa4]
jle 0x5549e0
mov dword [esp + 0xc0], 1
mov edx, dword [esi + 0x704]
add ebx, 1
cmp ebx, dword [edi + edx + 8]
jle 0x5549b0
cmp dword [esp + 0xc0], 0
jne 0x554a7d
mov eax, dword [esi + 0x588c]
mov ecx, dword [esp + 0x24]
mov edx, dword [eax + ecx + 0x40]
add eax, ecx
test edx, 0x10000
je 0x554a37
mov ecx, dword [esp + 0x88]
mov edx, dword [esi + 0x704]
imul ecx, ecx, 0x34
lea eax, [edi + edx + 0x74]
mov edx, dword [esi + 0x5890]
mov ecx, dword [edx + ecx + 0x28]
add dword [eax], ecx
jmp 0x554a7d
cmp dword [eax + 0x6c], 0
jne 0x554a51
mov eax, dword [esi + 0x704]
lea ecx, [edi + eax]
mov eax, dword [ecx + 0x28]
sub eax, dword [ecx + 0x78]
sub eax, dword [ecx + 0x74]
jmp 0x554a67
mov ecx, dword [esi + 0x704]
mov eax, dword [ecx + edi + 0x24]
sub eax, dword [ecx + edi + 0x80]
add ecx, edi
sub eax, dword [ecx + 0x7c]
sub eax, ebp
test eax, eax
jle 0x554a7d
test edx, 0x1000
je 0x554a7a
cdq
sub eax, edx
sar eax, 1
add dword [ecx + 0x74], eax
mov eax, dword [esp + 0xdc]
mov edx, dword [esi + 0x5884]
imul eax, eax, 0x68
mov ebx, dword [esp + 0x88]
xor ecx, ecx
cmp dword [edx + eax + 0x4c], ecx
mov edx, dword [esi + 0x704]
setl cl
lea eax, [edi + edx]
mov dword [esp + 0xb8], ecx
mov ecx, dword [eax + 0x28]
add ecx, dword [eax + 0x18]
mov dword [eax + 0x2c], ecx
mov edx, dword [esi + 0x588c]
mov eax, dword [esp + 0x24]
cmp dword [eax + edx + 0x54], 0
je 0x554af3
mov edx, dword [esi + 0x704]
mov eax, dword [edi + edx + 0x2c]
lea ecx, [esp + 0xb8]
push ecx
mov ecx, dword [esp + 0x24]
push eax
push ebx
push ecx
push esi
call fcn.0054f570
mov edx, dword [esi + 0x704]
add esp, 0x14
mov dword [edi + edx + 0x2c], eax
cmp dword [esp + 0xb8], 0
je 0x554b09
test dword [esi + 0xa170], 0x800
je 0x554b17
mov eax, dword [esi + 0x704]
mov dword [edi + eax + 0x2c], 0xffffffff
mov ecx, dword [esi + 0x5890]
imul ebx, ebx, 0x34
mov edx, dword [esp + 0x20]
mov dword [ecx + ebx + 0x2c], edx
cmp dword [esi + 0x20], 0
je 0x554c19
mov eax, dword [esi + 0x704]
add eax, edi
cmp dword [eax + 0x70], 0
jne 0x554c19
cmp dword [eax], 0
jne 0x554c19
cmp dword [esi + 0x3a58], 0
jne 0x554c19
mov ebx, dword [eax + 4]
cmp ebx, dword [eax + 8]
jg 0x554c19
mov ebp, dword [sym.imp.KERNEL32.dll_MulDiv]
lea esp, [esp]
push 0
push ebx
push esi
call fcn.004a0bf0
add esp, 0xc
test dword [esi + 0xa15c], 0x800
jne 0x554be8
mov ecx, dword [esi + 0x138]
mov edx, dword [ecx + ebx*4]
mov ecx, dword [edx + 0x14]
mov edx, dword [esi + 0x2b38]
imul ecx, ecx, 0x58
test byte [ecx + edx + 0x2c], 0x10
jne 0x554be8
test eax, eax
jl 0x554c06
cmp eax, dword [esi + 0x343c]
jge 0x554c06
mov ecx, dword [esi + 0x3434]
imul eax, eax, 0x170
add eax, ecx
test byte [eax + 0x134], 0x80
je 0x554c06
mov edx, dword [esi + 0x510]
mov eax, dword [eax + 0xb4]
push 0x5a0
push edx
push eax
call ebp
mov ecx, dword [esi + 0x704]
lea ecx, [edi + ecx + 0x24]
jmp 0x554c00
push 0
push 0
push ebx
push esi
call fcn.004f9940
mov edx, dword [esi + 0x704]
add esp, 0x10
lea ecx, [edi + edx + 0x24]
cmp dword [ecx], eax
jge 0x554c06
mov dword [ecx], eax
mov eax, dword [esi + 0x704]
add ebx, 1
cmp ebx, dword [edi + eax + 8]
jle 0x554b70
mov ecx, dword [esi + 0x704]
add ecx, edi
cmp dword [ecx], 0
jne 0x554c6c
test dword [ecx + 0x8c], 0x800
jne 0x554c6c
mov eax, dword [ecx + 4]
cmp eax, dword [ecx + 8]
jg 0x554c6c
mov edx, dword [esp + 0x20]
mov edi, edi
mov ecx, dword [esi + 0x138]
mov ebx, dword [esi + 0x704]
mov ecx, dword [ecx + eax*4]
mov ebx, dword [edi + ebx + 0x70]
cmp ebx, dword [ecx + 0x2c]
jne 0x554c5b
mov dword [ecx + 0x4c], edx
mov ecx, dword [esi + 0x704]
add eax, 1
cmp eax, dword [edi + ecx + 8]
jle 0x554c40
jmp 0x554c70
mov edx, dword [esp + 0x20]
mov eax, dword [esi + 0x704]
add eax, edi
cmp dword [eax], 0
jne 0x554cbb
cmp dword [esi + 0x5b84], 0
je 0x554cbb
cmp dword [esi + 0x5b88], 0
jne 0x554cbb
mov ebx, dword [esi + 0x138]
mov ecx, dword [eax + 4]
mov ecx, dword [ebx + ecx*4]
mov ecx, dword [ecx + 0x14]
mov ebx, dword [esi + 0x2b38]
imul ecx, ecx, 0x58
test dword [ecx + ebx + 0x18], 0x3000
je 0x554cbb
or dword [eax + 0x8c], 0x1000
test dword [esi + 0xa164], 0x200000
je 0x554cd5
mov eax, dword [esi + 0x704]
mov dword [edi + eax + 0x44], 0xf
mov ecx, dword [esi + 0x704]
lea eax, [edi + ecx]
mov ecx, dword [eax + 0x14]
add edx, 1
mov dword [eax + 0xb0], ecx
add edi, 0xb4
cmp edx, dword [esi + 0x70c]
mov dword [esp + 0x20], edx
jl 0x554790
xor ebx, ebx
or edi, 0xffffffff
cmp dword [esi + 0x70c], ebx
jle 0x554d25
lea ecx, [ecx]
push ebx
push esi
call fcn.0054f7f0
add ebx, 1
add esp, 8
cmp ebx, dword [esi + 0x70c]
jl 0x554d10
xor ebx, ebx
xor edx, edx
cmp dword [esi + 0x70c], ebx
jle 0x554d98
xor eax, eax
jmp 0x554d40
mov ecx, dword [esi + 0x704]
mov dword [eax + ecx + 0xc], edi
mov ecx, dword [esi + 0x704]
mov dword [eax + ecx + 0x10], edi
mov ecx, dword [esi + 0x704]
mov dword [eax + ecx + 0x3c], ebx
mov ecx, dword [esi + 0x704]
mov dword [eax + ecx + 0x34], ebx
mov ecx, dword [esi + 0x704]
add ecx, eax
cmp dword [ecx], ebx
jne 0x554d88
mov ecx, dword [ecx + 4]
mov ebp, dword [esi + 0x138]
mov ecx, dword [ebp + ecx*4]
or dword [ecx + 0x38], 0x1000
add edx, 1
add eax, 0xb4
cmp edx, dword [esi + 0x70c]
jl 0x554d40
mov edx, dword [esi + 0x74c]
mov dword [edx], ebx
mov eax, dword [esi + 0x748]
mov dword [eax], ebx
mov ecx, dword [esi + 0x754]
mov dword [ecx], ebx
xor edx, edx
cmp dword [esi + 0x70c], ebx
mov dword [esi + 0x520], ebx
jle 0x554df4
mov ecx, dword [esi + 0x704]
add ecx, 0x18
lea esp, [esp]
mov eax, dword [ecx + 0x10]
add eax, dword [ecx]
cmp eax, dword [esi + 0x520]
jle 0x554de3
mov dword [esi + 0x520], eax
add edx, 1
add ecx, 0xb4
cmp edx, dword [esi + 0x70c]
jl 0x554dd0
push esi
call fcn.0057a000
add esp, 4
cmp dword [esp + 0x320], ebx
jne 0x554e0f
push esi
call fcn.00550730
add esp, 4
cmp dword [esi + 0x1c], ebx
jne 0x554e82
push ebx
push esi
mov dword [esi + 0x70c], 1
call fcn.004bba60
mov edx, dword [esi + 0x704]
mov eax, dword [esi + 0x5e0]
mov dword [edx + 0x10], eax
mov eax, dword [esi + 0x704]
mov ecx, dword [eax + 0x10]
mov dword [eax + 0xc], ecx
mov edx, dword [esi + 0x704]
mov dword [edx + 0x3c], ebx
mov eax, dword [esi + 0x704]
mov dword [eax + 4], ebx
mov ecx, dword [esi + 0x5e4]
mov edx, dword [esi + 0x704]
add esp, 8
sub ecx, 1
mov dword [edx + 8], ecx
mov eax, dword [esi + 0x704]
mov ecx, dword [esi + 0x5e0]
mov dword [eax + 0x10], ecx
mov esi, dword [esi + 0x704]
mov edx, dword [esi + 0x10]
mov dword [esi + 0xc], edx
push str.CreateFrames___End
call fcn.004e4630
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x308
ret