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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x964
call fcn.00629030
mov eax, dword [0x70d514]
xor eax, esp
mov dword [esp + 0x960], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0x18]
push ebx
mov dword [esp + 0x3c], eax
xor ebx, ebx
xor eax, eax
mov dword [esp + 0x10], edx
push esi
mov esi, ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], eax
xor ecx, ecx
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x60], 0
push edi
test eax, eax
je 0x54b30b
cmp eax, 8
jb 0x54b30b
mov edx, dword [ebp + 0xc]
and eax, 0xfffffff8
xorps xmm1, xmm1
xorps xmm2, xmm2
nop word [eax + eax]
movups xmm0, xmmword [edx + ecx*4]
paddd xmm1, xmm0
movups xmm0, xmmword [edx + ecx*4 + 0x10]
add ecx, 8
paddd xmm2, xmm0
cmp ecx, eax
jb 0x54b2d0
mov eax, dword [ebp + 0x10]
paddd xmm1, xmm2
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd ebx, xmm1
xor edx, edx
xor edi, edi
cmp ecx, eax
jae 0x54b34b
sub eax, ecx
cmp eax, 2
jb 0x54b340
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
dec eax
mov dword [esp + 0x5c], eax
add edx, dword [esi + ecx*4]
add edi, dword [esi + ecx*4 + 4]
add ecx, 2
mov eax, ecx
cmp ecx, dword [esp + 0x5c]
jb 0x54b325
mov esi, dword [esp + 0x40]
cmp eax, dword [ebp + 0x10]
jae 0x54b346
mov eax, dword [ebp + 0xc]
add ebx, dword [eax + ecx*4]
lea eax, [edi + edx]
add ebx, eax
mov eax, dword [esi + 0x660]
test eax, eax
je 0x54b375
lea eax, [eax + eax*4]
cmp dword [esi + eax*4 + 0x674], 0
je 0x54b375
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x18]
push edi
push ebx
push dword [esp + 0x44]
jmp 0x54cdef
mov eax, dword [esi + 0x7c]
cmp dword [eax + 0xe8], 0
je 0x54b395
mov eax, dword [esi + 4]
push esi
mov eax, dword [eax + 0x40]
call eax
add esp, 4
test eax, eax
jle 0x54cdf9
mov edi, dword [ebp + 0x10]
cmp dword [esi + 0x660], edi
jae 0x54b3b5
push ecx
mov edx, edi
mov ecx, esi
call fcn.0055ec40
add esp, 4
test eax, eax
je 0x54ced5
mov ecx, dword [ebp + 0x14]
test ebx, ebx
jne 0x54b3d7
test ecx, ecx
jne 0x54b3d7
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x960]
xor ecx, esp
call fcn.00628f0a
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x474], 0
je 0x54b549
cmp dword [esi + 0x3ec], 0
je 0x54b549
mov eax, dword [esi + 0x400]
test eax, eax
je 0x54b549
mov eax, dword [eax]
test eax, eax
je 0x54b549
mov eax, dword [eax + 8]
mov dword [esp + 0x2c], eax
test eax, eax
jns 0x54b55b
mov edx, 0x68
push 0x2c8
push 0x6f6080
push 0x44
lea ecx, [edx - 0x54]
call fcn.004818c0
add esp, 0xc
cmp dword [esi + 0x48], 0
je 0x54b444
cmp dword [esi + 0x2c], 1
je 0x54ced5
cmp dword [esi + 0x60], 1
mov dword [esi + 0x48], 1
mov dword [esi + 0x2c], 1
je 0x54ced5
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x64]
test byte [ecx + 0x30], 8
jne 0x54b478
mov eax, dword [eax]
cmp eax, 0x304
jl 0x54b478
cmp eax, 0x10000
jne 0x54b4a6
mov eax, dword [esi + 0x68]
cmp eax, 2
je 0x54b4a6
cmp eax, 1
je 0x54b4a6
cmp eax, 4
je 0x54b4a6
cmp eax, 3
je 0x54b4a6
cmp dword [esi + 0x44c], 1
je 0x54b4a6
mov eax, dword [ecx + 0x28]
push 0x50
call eax
add esp, 4
mov ebx, eax
jmp 0x54b4ab
mov ebx, 0x50
cmp dword [esi], 0x300
jne 0x54b4bf
cmp ebx, 0x46
jne 0x54b4bf
mov ebx, 0x28
jmp 0x54b4c7
test ebx, ebx
js 0x54ced5
test byte [esi + 0x28], 1
je 0x54b4d5
test ebx, ebx
jne 0x54ced5
mov edx, dword [esi + 0x474]
test edx, edx
je 0x54b4ea
mov ecx, dword [esi + 0x5e0]
call fcn.005436e0
mov eax, dword [esi + 0x7c]
mov dword [eax + 0xe8], 1
mov eax, dword [esi + 0x7c]
mov byte [eax + 0xec], 2
mov eax, dword [esi + 0x7c]
mov byte [eax + 0xed], bl
mov eax, dword [esi + 0x660]
test eax, eax
je 0x54b525
lea eax, [eax + eax*4]
cmp dword [esi + eax*4 + 0x674], 0
jne 0x54ced5
mov eax, dword [esi + 4]
push esi
mov eax, dword [eax + 0x40]
call eax
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x960]
xor ecx, esp
call fcn.00628f0a
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0x2c], eax
cmp dword [esi + 0x3ec], eax
je 0x54b7aa
test ecx, ecx
jne 0x54b7b2
mov eax, dword [esi + 0x7c]
cmp dword [eax + 0xd0], ecx
jne 0x54b6fd
cmp dword [eax + 0xcc], ecx
je 0x54b6f0
cmp dword [esp + 0x18], 0x17
jne 0x54b6f0
lea eax, [esp + 0x64]
mov dword [esp + 0x5c], ecx
push eax
push 1
push 1
lea eax, [esp + 0x68]
push eax
push dword [esp + 0x4c]
lea edx, [ecx + 0x17]
mov ecx, esi
call fcn.0054b260
add esp, 0x14
test eax, eax
jle 0x54ced5
cmp dword [esp + 0x64], 0x55
jbe 0x54b6f0
mov edx, 0x68
push 0x2ea
push 0x6f6080
push 0x44
lea ecx, [edx - 0x54]
call fcn.004818c0
add esp, 0xc
cmp dword [esi + 0x48], 0
je 0x54b5eb
cmp dword [esi + 0x2c], 1
je 0x54ced5
cmp dword [esi + 0x60], 1
mov dword [esi + 0x48], 1
mov dword [esi + 0x2c], 1
je 0x54ced5
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x64]
test byte [ecx + 0x30], 8
jne 0x54b61f
mov eax, dword [eax]
cmp eax, 0x304
jl 0x54b61f
cmp eax, 0x10000
jne 0x54b64d
mov eax, dword [esi + 0x68]
cmp eax, 2
je 0x54b64d
cmp eax, 1
je 0x54b64d
cmp eax, 4
je 0x54b64d
cmp eax, 3
je 0x54b64d
cmp dword [esi + 0x44c], 1
je 0x54b64d
mov eax, dword [ecx + 0x28]
push 0x50
call eax
add esp, 4
mov ebx, eax
jmp 0x54b652
mov ebx, 0x50
cmp dword [esi], 0x300
jne 0x54b666
cmp ebx, 0x46
jne 0x54b666
mov ebx, 0x28
jmp 0x54b66e
test ebx, ebx
js 0x54ced5
test byte [esi + 0x28], 1
je 0x54b67c
test ebx, ebx
jne 0x54ced5
mov edx, dword [esi + 0x474]
test edx, edx
je 0x54b691
mov ecx, dword [esi + 0x5e0]
call fcn.005436e0
mov eax, dword [esi + 0x7c]
mov dword [eax + 0xe8], 1
mov eax, dword [esi + 0x7c]
mov byte [eax + 0xec], 2
mov eax, dword [esi + 0x7c]
mov byte [eax + 0xed], bl
mov eax, dword [esi + 0x660]
test eax, eax
je 0x54b6cc
lea eax, [eax + eax*4]
cmp dword [esi + eax*4 + 0x674], 0
jne 0x54ced5
mov eax, dword [esi + 4]
push esi
mov eax, dword [eax + 0x40]
call eax
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x960]
xor ecx, esp
call fcn.00628f0a
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x7c]
mov dword [eax + 0xd0], 1
cmp dword [esp + 0x64], 0
je 0x54bba4
mov ecx, dword [esi + 0x678]
mov eax, dword [esi + 0x680]
test ecx, ecx
je 0x54ba73
test eax, eax
je 0x54ba73
mov dword [esp + 0x6c], ecx
lea ecx, [esp + 0x68]
mov dword [esp + 0x68], 0
mov dword [esp + 0x78], eax
call fcn.0057f350
test eax, eax
je 0x54ba73
mov edi, dword [esi + 0x684]
add edi, dword [esp + 0x64]
cmp dword [esp + 0x7c], 0
je 0x54ba73
test edi, edi
je 0x54ba73
mov eax, dword [esp + 0x78]
mov ebx, dword [esp + 0x74]
sub eax, ebx
cmp eax, edi
jb 0x54ba73
cmp dword [esp + 0x6c], 0
jne 0x54b870
mov ecx, dword [esp + 0x68]
mov ecx, dword [ecx]
mov eax, ecx
sub eax, ebx
cmp eax, edi
jae 0x54b870
cmp edi, ecx
cmova ecx, edi
cmp ecx, 0x7fffffff
jbe 0x54ba51
or edx, 0xffffffff
jmp 0x54ba62
test ecx, ecx
je 0x54b6fd
mov ecx, dword [esi + 0x678]
mov edi, 7
lea eax, [ecx + 1]
and eax, 7
sub edi, eax
mov eax, dword [esi + 0x680]
mov dword [esi + 0x684], edi
test ecx, ecx
je 0x54b920
test eax, eax
je 0x54b920
mov dword [esp + 0x6c], ecx
lea ecx, [esp + 0x68]
mov dword [esp + 0x68], 0
mov dword [esp + 0x78], eax
call fcn.0057f350
test eax, eax
je 0x54b920
cmp dword [esp + 0x7c], 0
je 0x54b920
test edi, edi
je 0x54b920
mov eax, dword [esp + 0x78]
mov ebx, dword [esp + 0x74]
sub eax, ebx
cmp eax, edi
jb 0x54b920
cmp dword [esp + 0x6c], 0
jne 0x54b870
mov ecx, dword [esp + 0x68]
mov ecx, dword [ecx]
mov eax, ecx
sub eax, ebx
cmp eax, edi
jae 0x54b870
cmp edi, ecx
cmova ecx, edi
cmp ecx, 0x7fffffff
jbe 0x54b84e
or edx, 0xffffffff
jmp 0x54b85f
lea edx, [ecx + ecx]
mov eax, 0x100
cmp edx, 0x100
cmovb edx, eax
mov ecx, dword [esp + 0x68]
call fcn.00488ba0
test eax, eax
je 0x54b920
add ebx, edi
mov dword [esp + 0x34], 1
add dword [esp + 0x70], edi
mov dword [esp + 0x74], ebx
mov edi, dword [ebp + 0x10]
mov ecx, dword [esi + 0x3ec]
test ecx, ecx
je 0x54bdd2
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x64]
mov eax, dword [eax + 0x30]
test al, 1
je 0x54bdd2
test al, 8
jne 0x54b8bc
mov eax, dword [edx]
cmp eax, 0x304
jl 0x54b8bc
cmp eax, 0x10000
jne 0x54bdd2
mov eax, dword [esi + 0x68]
cmp eax, 2
je 0x54bdd2
cmp eax, 1
je 0x54bdd2
cmp eax, 4
je 0x54bdd2
cmp eax, 3
je 0x54bdd2
cmp dword [esi + 0x44c], 1
je 0x54bdd2
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
and eax, 0xf0007
cmp eax, 2
jne 0x54bdb2
call fcn.0046cbe0
mov dword [esp + 0x28], eax
cmp eax, 1
jg 0x54bdd2
xor eax, eax
mov dword [esp + 0x28], eax
jmp 0x54bdd2
mov edx, 0x68
push 0x302
push 0x6f6080
push 0x44
lea ecx, [edx - 0x54]
call fcn.004818c0
add esp, 0xc
cmp dword [esi + 0x48], 0
je 0x54b94c
cmp dword [esi + 0x2c], 1
je 0x54ced5
cmp dword [esi + 0x60], 1
mov dword [esi + 0x48], 1
mov dword [esi + 0x2c], 1
je 0x54ced5
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x64]
test byte [ecx + 0x30], 8
jne 0x54b980
mov eax, dword [eax]
cmp eax, 0x304
jl 0x54b980
cmp eax, 0x10000
jne 0x54b9ae
mov eax, dword [esi + 0x68]
cmp eax, 2
je 0x54b9ae
cmp eax, 1
je 0x54b9ae
cmp eax, 4
je 0x54b9ae
cmp eax, 3
je 0x54b9ae
cmp dword [esi + 0x44c], 1
je 0x54b9ae
mov eax, dword [ecx + 0x28]
push 0x50
call eax
add esp, 4
mov ebx, eax
jmp 0x54b9b3
mov ebx, 0x50
cmp dword [esi], 0x300
jne 0x54b9c7
cmp ebx, 0x46
jne 0x54b9c7
mov ebx, 0x28
jmp 0x54b9cf
test ebx, ebx
js 0x54ced5
test byte [esi + 0x28], 1
je 0x54b9dd
test ebx, ebx
jne 0x54ced5
mov edx, dword [esi + 0x474]
test edx, edx
je 0x54b9f2
mov ecx, dword [esi + 0x5e0]
call fcn.005436e0
mov eax, dword [esi + 0x7c]
mov dword [eax + 0xe8], 1
mov eax, dword [esi + 0x7c]
mov byte [eax + 0xec], 2
mov eax, dword [esi + 0x7c]
mov byte [eax + 0xed], bl
mov eax, dword [esi + 0x660]
test eax, eax
je 0x54ba2d
lea eax, [eax + eax*4]
cmp dword [esi + eax*4 + 0x674], 0
jne 0x54ced5
mov eax, dword [esi + 4]
push esi
mov eax, dword [eax + 0x40]
call eax
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x960]
xor ecx, esp
call fcn.00628f0a
mov esp, ebp
pop ebp
ret
lea edx, [ecx + ecx]
mov eax, 0x100
cmp edx, 0x100
cmovb edx, eax
mov ecx, dword [esp + 0x68]
call fcn.00488ba0
test eax, eax
jne 0x54b870
mov edx, 0x68
push 0x30e
push 0x6f6080
push 0x44
lea ecx, [edx - 0x54]
call fcn.004818c0
add esp, 0xc
cmp dword [esi + 0x48], 0
je 0x54ba9f
cmp dword [esi + 0x2c], 1
je 0x54ced5
cmp dword [esi + 0x60], 1
mov dword [esi + 0x48], 1
mov dword [esi + 0x2c], 1
je 0x54ced5
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x64]
test byte [ecx + 0x30], 8
jne 0x54bad3
mov eax, dword [eax]
cmp eax, 0x304
jl 0x54bad3
cmp eax, 0x10000
jne 0x54bb01
mov eax, dword [esi + 0x68]
cmp eax, 2
je 0x54bb01
cmp eax, 1
je 0x54bb01
cmp eax, 4
je 0x54bb01
cmp eax, 3
je 0x54bb01
cmp dword [esi + 0x44c], 1
je 0x54bb01
mov eax, dword [ecx + 0x28]
push 0x50
call eax
add esp, 4
mov ebx, eax
jmp 0x54bb06
mov ebx, 0x50
cmp dword [esi], 0x300
jne 0x54bb1a
cmp ebx, 0x46
jne 0x54bb1a
mov ebx, 0x28
jmp 0x54bb22
test ebx, ebx
js 0x54ced5
test byte [esi + 0x28], 1
je 0x54bb30
test ebx, ebx
jne 0x54ced5
mov edx, dword [esi + 0x474]
test edx, edx
je 0x54bb45
mov ecx, dword [esi + 0x5e0]
call fcn.005436e0
mov eax, dword [esi + 0x7c]
mov dword [eax + 0xe8], 1
mov eax, dword [esi + 0x7c]
mov byte [eax + 0xec], 2
mov eax, dword [esi + 0x7c]
mov byte [eax + 0xed], bl
mov eax, dword [esi + 0x660]
test eax, eax
je 0x54bb80
lea eax, [eax + eax*4]
cmp dword [esi + eax*4 + 0x674], 0
jne 0x54ced5
mov eax, dword [esi + 4]
push esi
mov eax, dword [eax + 0x40]
call eax
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x960]
xor ecx, esp
call fcn.00628f0a
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x30], 0
test edi, edi
je 0x54b885
lea ecx, [esi + 0x680]
lea edi, [esp + 0x78]
mov dword [esp + 0x10], ecx
mov edx, dword [ecx - 8]
mov ebx, 7
lea eax, [edx - 4]
and eax, 7
sub ebx, eax
mov dword [ecx + 4], ebx
mov ecx, dword [ecx]
test edx, edx
je 0x54bc97
test ecx, ecx
je 0x54bc97
mov dword [edi], ecx
lea ecx, [edi - 0x10]
mov dword [edi - 0xc], edx
mov dword [edi - 0x10], 0
call fcn.0057f350
test eax, eax
je 0x54bc97
cmp dword [edi + 4], 0
je 0x54bc97
test ebx, ebx
je 0x54bc97
mov eax, dword [edi]
mov edx, dword [edi - 4]
sub eax, edx
cmp eax, ebx
jb 0x54bc97
cmp dword [edi - 0xc], 0
jne 0x54bc65
mov eax, dword [edi - 0x10]
mov ecx, dword [eax]
mov eax, ecx
sub eax, edx
cmp eax, ebx
jae 0x54bc65
cmp ebx, ecx
cmova ecx, ebx
cmp ecx, 0x7fffffff
jbe 0x54bc45
or edx, 0xffffffff
jmp 0x54bc56
lea edx, [ecx + ecx]
mov eax, 0x100
cmp edx, 0x100
cmovb edx, eax
mov ecx, dword [edi - 0x10]
call fcn.00488ba0
test eax, eax
je 0x54bc97
mov edx, dword [edi - 4]
mov ecx, dword [esp + 0x10]
lea eax, [edx + ebx]
add dword [edi - 8], ebx
add ecx, 0x14
inc dword [esp + 0x34]
mov dword [edi - 4], eax
add edi, 0x18
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x30], eax
cmp eax, dword [ebp + 0x10]
jb 0x54bbc2
jmp 0x54b882
mov edx, 0x68
push 0x320
push 0x6f6080
push 0x44
lea ecx, [edx - 0x54]
call fcn.004818c0
add esp, 0xc
cmp dword [esi + 0x48], 0
je 0x54bcc3
cmp dword [esi + 0x2c], 1
je 0x54ce9e
cmp dword [esi + 0x60], 1
mov dword [esi + 0x48], 1
mov dword [esi + 0x2c], 1
je 0x54ce9e
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x64]
test byte [ecx + 0x30], 8
jne 0x54bcf7
mov eax, dword [eax]
cmp eax, 0x304
jl 0x54bcf7
cmp eax, 0x10000
jne 0x54bd25
mov eax, dword [esi + 0x68]
cmp eax, 2
je 0x54bd25
cmp eax, 1
je 0x54bd25
cmp eax, 4
je 0x54bd25
cmp eax, 3
je 0x54bd25
cmp dword [esi + 0x44c], 1
je 0x54bd25
mov eax, dword [ecx + 0x28]
push 0x50
call eax
add esp, 4
mov ebx, eax
jmp 0x54bd2a
mov ebx, 0x50
cmp dword [esi], 0x300
jne 0x54bd3e
cmp ebx, 0x46
jne 0x54bd3e
mov ebx, 0x28
jmp 0x54bd46
test ebx, ebx
js 0x54ce9e
test byte [esi + 0x28], 1
je 0x54bd54
test ebx, ebx
jne 0x54ce9e
mov edx, dword [esi + 0x474]
test edx, edx
je 0x54bd69
mov ecx, dword [esi + 0x5e0]
call fcn.005436e0
mov eax, dword [esi + 0x7c]
mov dword [eax + 0xe8], 1
mov eax, dword [esi + 0x7c]
mov byte [eax + 0xec], 2
mov eax, dword [esi + 0x7c]
mov byte [eax + 0xed], bl
mov eax, dword [esi + 0x660]
test eax, eax
je 0x54bda4
lea eax, [eax + eax*4]
cmp dword [esi + eax*4 + 0x674], 0
jne 0x54ce9e
mov eax, dword [esi + 4]
push esi
mov eax, dword [eax + 0x40]
call eax
jmp 0x54ce9b
cmp eax, 6
jne 0x54bdc1
mov dword [esp + 0x28], 8
jmp 0x54bdd2
xor ecx, ecx
mov edx, 8
cmp eax, 7
cmove ecx, edx
mov dword [esp + 0x28], ecx
push 0x600
lea eax, [esp + 0x36c]
mov dword [esp + 0x34], 0
push 0
push eax
call fcn.0062c160
xor ecx, ecx
add esp, 0xc
mov dword [esp + 0x1c], ecx
test edi, edi
je 0x54c48c
mov edx, dword [esi]
lea eax, [ecx + ecx*2]
cmp edx, 0x304
mov dword [esp + 0x5c], 0
mov edi, 0x303
mov ebx, edx
cmove ebx, edi
lea edi, [esp + 0x68]
lea edi, [edi + eax*8]
mov dword [esp + 0x40], ebx
lea eax, [ecx + ecx*2]
shl eax, 4
lea ecx, [esp + 0x368]
mov dword [esp + 0x24], eax
add eax, ecx
mov ecx, dword [esi + 4]
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 0x64]
test byte [eax + 0x30], 8
jne 0x54be5a
mov eax, dword [ecx]
cmp eax, 0x304
jl 0x54be5a
cmp eax, 0x10000
jne 0x54be7a
mov eax, dword [esi + 0x68]
cmp eax, 2
je 0x54be7a
cmp eax, 1
je 0x54be7a
cmp eax, 4
je 0x54be7a
cmp eax, 3
je 0x54be7a
cmp dword [esi + 0x44c], 1
jne 0x54be99
cmp dword [esi + 0x3ec], 0
je 0x54be99
cmp dword [esi + 0x60], 2
jne 0x54be92
mov eax, dword [esp + 0x18]
cmp eax, 0x15
je 0x54be9d
mov eax, 0x17
jmp 0x54be9d
mov eax, dword [esp + 0x18]
cmp dword [esi + 0x40], 0xc
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov dword [ecx + 4], eax
jne 0x54bee0
cmp dword [esi + 0x5ec], 0
jne 0x54bee0
mov eax, edx
and eax, 0xffffff00
cmp eax, 0x300
jne 0x54bee0
cmp edx, 0x301
jle 0x54bee0
cmp dword [esi + 0x44c], 0
mov eax, 0x301
cmove ebx, eax
mov dword [esp + 0x40], ebx
mov eax, dword [esp + 0x1c]
cmp dword [esi + 0x3e4], 0
mov dword [ecx], ebx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + eax*4]
lea ecx, [eax + 0x400]
cmove ecx, eax
cmp dword [edi + 0x14], 0
mov dword [esp + 0x38], ecx
je 0x54ca5b
mov ebx, dword [edi + 0x10]
mov eax, ebx
sub eax, dword [edi + 0xc]
cmp eax, 1
jb 0x54ca5b
mov edx, dword [edi + 4]
test edx, edx
jne 0x54bf69
mov ebx, dword [edi]
mov ecx, dword [ebx]
mov eax, ecx
sub eax, dword [edi + 0xc]
cmp eax, 1
jae 0x54bf61
cmp ecx, 1
jb 0x54bf4d
cmp ecx, 0x7fffffff
jbe 0x54bf42
or edx, 0xffffffff
jmp 0x54bf52
lea edx, [ecx + ecx]
cmp edx, 0x100
jae 0x54bf52
mov edx, 0x100
mov ecx, ebx
call fcn.00488ba0
test eax, eax
je 0x54ca5b
mov ecx, dword [ebx + 4]
mov ebx, dword [edi + 0x10]
jmp 0x54bf6b
mov ecx, edx
mov eax, dword [edi + 8]
mov edx, dword [edi + 0xc]
inc edx
mov dword [esp + 0x10], edx
mov dword [edi + 0xc], edx
lea edx, [eax + 1]
mov dword [esp + 0x48], edx
mov dword [edi + 8], edx
mov edx, dword [esp + 0x20]
mov byte [eax + ecx], dl
mov eax, edx
mov edx, dword [edi + 4]
shr eax, 8
test eax, eax
jne 0x54ca5b
mov eax, dword [esp + 0x10]
sub ebx, eax
cmp ebx, 2
jb 0x54ca5b
test edx, edx
jne 0x54bff4
mov ebx, dword [edi]
mov ecx, dword [ebx]
mov eax, ecx
sub eax, dword [esp + 0x10]
cmp eax, 2
jae 0x54bfed
cmp ecx, 2
jb 0x54bfd9
cmp ecx, 0x7fffffff
jbe 0x54bfce
or edx, 0xffffffff
jmp 0x54bfde
lea edx, [ecx + ecx]
cmp edx, 0x100
jae 0x54bfde
mov edx, 0x100
mov ecx, ebx
call fcn.00488ba0
test eax, eax
je 0x54ca5b
mov edx, dword [ebx + 4]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x48]
add eax, 2
mov dword [edi + 0xc], eax
lea eax, [ecx + 2]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x40]
mov byte [ecx + edx + 1], al
shr eax, 8
mov byte [ecx + edx], al
shr eax, 8
test eax, eax
jne 0x54ca5b
lea edx, [eax + 2]
mov ecx, edi
call fcn.0057f4c0
test eax, eax
je 0x54ca5b
mov edx, dword [esp + 0x28]
test edx, edx
jle 0x54c0a2
cmp dword [edi + 0x14], 0
je 0x54ca5b
mov eax, dword [edi + 0x10]
mov ebx, dword [edi + 0xc]
sub eax, ebx
cmp eax, edx
jb 0x54ca5b
cmp dword [edi + 4], 0
jne 0x54c099
mov eax, dword [edi]
mov ecx, dword [eax]
mov eax, ecx
sub eax, ebx
cmp eax, edx
jae 0x54c099
cmp edx, ecx
cmova ecx, edx
cmp ecx, 0x7fffffff
jbe 0x54c075
or edx, 0xffffffff
jmp 0x54c086
lea edx, [ecx + ecx]
mov eax, 0x100
cmp edx, 0x100
cmovb edx, eax
mov ecx, dword [edi]
call fcn.00488ba0
test eax, eax
je 0x54ca5b
mov edx, dword [esp + 0x28]
add dword [edi + 8], edx
lea eax, [ebx + edx]
mov dword [edi + 0xc], eax
mov edx, dword [esp + 0x38]
test edx, edx
je 0x54c0c1
lea eax, [esp + 0x5c]
mov ecx, edi
push eax
call fcn.0057f2c0
add esp, 4
test eax, eax
je 0x54ca5b
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x5c]
mov ebx, dword [ebp + 0xc]
mov edx, dword [esp + 0x30]
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x1c]
mov ebx, dword [ebx + eax*4]
mov eax, dword [esp + 0x3c]
add eax, edx
mov dword [ecx + 8], ebx
add edx, ebx
mov dword [esp + 0x38], eax
cmp dword [esi + 0x3e4], 0
mov dword [ecx + 0x18], eax
mov dword [esp + 0x30], edx
je 0x54c189
mov edx, ecx
mov ecx, esi
call fcn.005833b0
test eax, eax
je 0x54c4c7
cmp dword [edi + 0x14], 0
mov ecx, dword [esp + 0x14]
mov ebx, dword [ecx + 8]
je 0x54c4c7
test ebx, ebx
je 0x54c4c7
mov eax, dword [edi + 0x10]
mov edx, dword [edi + 0xc]
sub eax, edx
cmp eax, ebx
jb 0x54c4c7
cmp dword [edi + 4], 0
jne 0x54c17e
mov eax, dword [edi]
mov ecx, dword [eax]
mov eax, ecx
sub eax, edx
cmp eax, ebx
jae 0x54c17e
cmp ebx, ecx
cmova ecx, ebx
cmp ecx, 0x7fffffff
jbe 0x54c15b
or edx, 0xffffffff
jmp 0x54c16c
lea edx, [ecx + ecx]
mov eax, 0x100
cmp edx, 0x100
cmovb edx, eax
mov ecx, dword [edi]
call fcn.00488ba0
test eax, eax
je 0x54c4c7
mov edx, dword [edi + 0xc]
add dword [edi + 8], ebx
lea eax, [ebx + edx]
mov dword [edi + 0xc], eax
jmp 0x54c1cf
test ebx, ebx
je 0x54c1bd
lea eax, [esp + 0x54]
mov edx, ebx
push eax
mov ecx, edi
call fcn.0057f2c0
add esp, 4
test eax, eax
je 0x54c5e5
add dword [edi + 0xc], ebx
add dword [edi + 8], ebx
push ebx
push dword [esp + 0x3c]
push dword [esp + 0x5c]
call fcn.0062bbe0
add esp, 0xc
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + ecx + 0x37c]
mov dword [esp + ecx + 0x380], eax
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 0x64]
test byte [eax + 0x30], 8
jne 0x54c1eb
mov eax, dword [ecx]
cmp eax, 0x304
jl 0x54c1eb
cmp eax, 0x10000
jne 0x54c20f
mov eax, dword [esi + 0x68]
cmp eax, 2
je 0x54c20f
cmp eax, 1
je 0x54c20f
cmp eax, 4
je 0x54c20f
cmp eax, 3
je 0x54c20f
cmp dword [esi + 0x44c], 1
jne 0x54c39a
cmp dword [esi + 0x3ec], 0
je 0x54c39a
cmp dword [esi + 0x60], 2
jne 0x54c22d
cmp dword [esp + 0x18], 0x15
je 0x54c39a
cmp dword [edi + 0x14], 0
je 0x54c81b
mov eax, dword [edi + 0x10]
mov edx, dword [edi + 0xc]
sub eax, edx
cmp eax, 1
jb 0x54c81b
mov ecx, dword [edi + 4]
test ecx, ecx
jne 0x54c293
mov ebx, dword [edi]
mov ecx, dword [ebx]
mov eax, ecx
sub eax, edx
cmp eax, 1
jae 0x54c290
cmp ecx, 1
jb 0x54c279
cmp ecx, 0x7fffffff
jbe 0x54c26e
or edx, 0xffffffff
jmp 0x54c27e
lea edx, [ecx + ecx]
cmp edx, 0x100
jae 0x54c27e
mov edx, 0x100
mov ecx, ebx
call fcn.00488ba0
test eax, eax
je 0x54c81b
mov edx, dword [edi + 0xc]
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 8]
inc edx
mov dword [esp + 0x38], edx
mov dword [edi + 0xc], edx
lea edx, [eax + 1]
mov dword [esp + 0x48], edx
mov dword [edi + 8], edx
mov edx, dword [esp + 0x18]
mov byte [ecx + eax], dl
mov eax, edx
shr eax, 8
test eax, eax
jne 0x54c81b
mov ebx, dword [esp + 0x14]
mov eax, dword [esi + 0x474]
mov ecx, dword [ebx + 8]
inc ecx
mov dword [esp + 0x24], ecx
mov dword [ebx + 8], ecx
test eax, eax
je 0x54c2f3
mov dl, byte [eax + 0x1ec]
lea eax, [edx - 1]
cmp al, 3
ja 0x54c2f3
movzx ecx, dl
mov eax, 0x200
dec ecx
shl eax, cl
mov ecx, dword [esp + 0x24]
jmp 0x54c2f9
mov eax, dword [esi + 0x50c]
cmp ecx, eax
jae 0x54c39e
sub eax, ecx
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0xf5c]
test eax, eax
je 0x54c326
push dword [esi + 0xf60]
push ecx
push dword [esp + 0x20]
push esi
call eax
add esp, 0x10
mov ebx, eax
jmp 0x54c347
mov ebx, dword [esi + 0xf64]
test ebx, ebx
je 0x54c39a
lea edx, [ebx - 1]
test edx, ebx
jne 0x54c33b
and edx, ecx
jmp 0x54c341
mov eax, ecx
xor edx, edx
div ebx
test edx, edx
je 0x54c39a
sub ebx, edx
test ebx, ebx
je 0x54c39a
mov eax, dword [esp + 0x24]
cmp ebx, eax
jbe 0x54c359
mov ebx, eax
test ebx, ebx
je 0x54c393
lea eax, [esp + 0x58]
mov edx, ebx
push eax
mov ecx, edi
call fcn.0057f2c0
add esp, 4
test eax, eax
je 0x54c700
mov eax, dword [esp + 0x38]
add eax, ebx
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x48]
push ebx
push 0
push dword [esp + 0x60]
add eax, ebx
mov dword [edi + 8], eax
call fcn.0062c160
add esp, 0xc
mov eax, dword [esp + 0x14]
add dword [eax + 8], ebx
mov ebx, dword [esp + 0x14]
mov eax, dword [esi + 0x7c]
test dword [eax], 0x400
jne 0x54c3f2
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x54c3f2
lea ecx, [esp + 0x4c]
mov edx, eax
push ecx
mov ecx, edi
call fcn.0057f2c0
add esp, 4
test eax, eax
je 0x54c936
mov eax, dword [esp + 0x2c]
add dword [edi + 0xc], eax
add dword [edi + 8], eax
mov eax, dword [esi + 4]
push 1
push dword [esp + 0x50]
mov eax, dword [eax + 0x64]
push ebx
push esi
mov eax, dword [eax + 4]
call eax
add esp, 0x10
test eax, eax
je 0x54c936
cmp dword [edi + 0x14], 0
je 0x54ca51
mov eax, dword [edi + 0x10]
mov ebx, dword [edi + 0xc]
sub eax, ebx
cmp eax, 0x10
jb 0x54ca51
mov edx, dword [edi + 4]
test edx, edx
jne 0x54c455
mov eax, dword [edi]
mov ecx, dword [eax]
mov eax, ecx
sub eax, ebx
cmp eax, 0x10
jae 0x54c455
cmp ecx, 0x10
jb 0x54c43e
cmp ecx, 0x7fffffff
jbe 0x54c433
or edx, 0xffffffff
jmp 0x54c443
lea edx, [ecx + ecx]
cmp edx, 0x100
jae 0x54c443
mov edx, 0x100
mov ecx, dword [edi]
call fcn.00488ba0
test eax, eax
je 0x54ca51
mov edx, dword [edi + 4]
mov eax, dword [edi + 0x14]
sub ebx, dword [eax + 0xc]
test edx, edx
jne 0x54c464
mov eax, dword [edi]
mov edx, dword [eax + 4]
mov ecx, dword [esp + 0x14]
mov eax, dword [edi + 8]
mov edi, dword [ebp + 0x10]
sub eax, ebx
add eax, edx
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x18], eax
mov dword [ecx + 8], ebx
mov ecx, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x1c], ecx
cmp ecx, edi
jb 0x54bdff
cmp dword [esi + 0x60], 2
push 1
push edi
jne 0x54cb76
lea eax, [esp + 0x370]
push eax
push esi
call fcn.00585730
add esp, 0x10
cmp eax, 1
jge 0x54cba5
cmp dword [esi + 0x2c], 1
je 0x54ce9e
push 0x3ee
jmp 0x54ce56
mov edx, 0x68
push 0x37e
push 0x6f6080
push 0x8d
lea ecx, [edx - 0x54]
call fcn.004818c0
add esp, 0xc
cmp dword [esi + 0x48], 0
je 0x54c4f6
cmp dword [esi + 0x2c], 1
je 0x54ce9e
cmp dword [esi + 0x60], 1
mov dword [esi + 0x48], 1
mov dword [esi + 0x2c], 1
je 0x54ce9e
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x64]
test byte [ecx + 0x30], 8
jne 0x54c52a
mov eax, dword [eax]
cmp eax, 0x304
jl 0x54c52a
cmp eax, 0x10000
jne 0x54c558
mov eax, dword [esi + 0x68]
cmp eax, 2
je 0x54c558
cmp eax, 1
je 0x54c558
cmp eax, 4
je 0x54c558
cmp eax, 3
je 0x54c558
cmp dword [esi + 0x44c], 1
je 0x54c558
mov eax, dword [ecx + 0x28]
push 0x50
call eax
add esp, 4
mov ebx, eax
jmp 0x54c55d
mov ebx, 0x50
cmp dword [esi], 0x300
jne 0x54c571
cmp ebx, 0x46
jne 0x54c571
mov ebx, 0x28
jmp 0x54c579
test ebx, ebx
js 0x54ce9e
test byte [esi + 0x28], 1
je 0x54c587
test ebx, ebx
jne 0x54ce9e
mov edx, dword [esi + 0x474]
test edx, edx
je 0x54c59c
mov ecx, dword [esi + 0x5e0]
call fcn.005436e0
mov eax, dword [esi + 0x7c]
mov dword [eax + 0xe8], 1
mov eax, dword [esi + 0x7c]
mov byte [eax + 0xec], 2
mov eax, dword [esi + 0x7c]
mov byte [eax + 0xed], bl
mov eax, dword [esi + 0x660]
test eax, eax
je 0x54c5d7
lea eax, [eax + eax*4]
cmp dword [esi + eax*4 + 0x674], 0
jne 0x54ce9e
mov eax, dword [esi + 4]
push esi
mov eax, dword [eax + 0x40]
call eax
jmp 0x54ce9b
mov edx, 0x68
push 0x384
push 0x6f6080
push 0x44
lea ecx, [edx - 0x54]
call fcn.004818c0
add esp, 0xc
cmp dword [esi + 0x48], 0
je 0x54c611
cmp dword [esi + 0x2c], 1
je 0x54ce9e
cmp dword [esi + 0x60], 1
mov dword [esi + 0x48], 1
mov dword [esi + 0x2c], 1
je 0x54ce9e
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x64]
test byte [ecx + 0x30], 8
jne 0x54c645
mov eax, dword [eax]
cmp eax, 0x304
jl 0x54c645
cmp eax, 0x10000
jne 0x54c673
mov eax, dword [esi + 0x68]
cmp eax, 2
je 0x54c673
cmp eax, 1
je 0x54c673
cmp eax, 4
je 0x54c673
cmp eax, 3
je 0x54c673
cmp dword [esi + 0x44c], 1
je 0x54c673
mov eax, dword [ecx + 0x28]
push 0x50
call eax
add esp, 4
mov ebx, eax
jmp 0x54c678
mov ebx, 0x50
cmp dword [esi], 0x300
jne 0x54c68c
cmp ebx, 0x46
jne 0x54c68c
mov ebx, 0x28
jmp 0x54c694
test ebx, ebx
js 0x54ce9e
test byte [esi + 0x28], 1
je 0x54c6a2
test ebx, ebx
jne 0x54ce9e
mov edx, dword [esi + 0x474]
test edx, edx
je 0x54c6b7
mov ecx, dword [esi + 0x5e0]
call fcn.005436e0
mov eax, dword [esi + 0x7c]
mov dword [eax + 0xe8], 1
mov eax, dword [esi + 0x7c]
mov byte [eax + 0xec], 2
mov eax, dword [esi + 0x7c]
mov byte [eax + 0xed], bl
mov eax, dword [esi + 0x660]
test eax, eax
je 0x54c6f2
lea eax, [eax + eax*4]
cmp dword [esi + eax*4 + 0x674], 0
jne 0x54ce9e
mov eax, dword [esi + 4]
push esi
mov eax, dword [eax + 0x40]
call eax
jmp 0x54ce9b
mov edx, 0x68
push 0x3b4
push 0x6f6080
push 0x44
lea ecx, [edx - 0x54]
call fcn.004818c0
add esp, 0xc
cmp dword [esi + 0x48], 0
je 0x54c72c
cmp dword [esi + 0x2c], 1
je 0x54ce9e
cmp dword [esi + 0x60], 1
mov dword [esi + 0x48], 1
mov dword [esi + 0x2c], 1
je 0x54ce9e
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x64]
test byte [ecx + 0x30], 8
jne 0x54c760
mov eax, dword [eax]
cmp eax, 0x304
jl 0x54c760
cmp eax, 0x10000
jne 0x54c78e
mov eax, dword [esi + 0x68]
cmp eax, 2
je 0x54c78e
cmp eax, 1
je 0x54c78e
cmp eax, 4
je 0x54c78e
cmp eax, 3
je 0x54c78e
cmp dword [esi + 0x44c], 1
je 0x54c78e
mov eax, dword [ecx + 0x28]
push 0x50
call eax
add esp, 4
mov ebx, eax
jmp 0x54c793
mov ebx, 0x50
cmp dword [esi], 0x300
jne 0x54c7a7
cmp ebx, 0x46
jne 0x54c7a7
mov ebx, 0x28
jmp 0x54c7af
test ebx, ebx
js 0x54ce9e
test byte [esi + 0x28], 1
je 0x54c7bd
test ebx, ebx
jne 0x54ce9e
mov edx, dword [esi + 0x474]
test edx, edx
je 0x54c7d2
mov ecx, dword [esi + 0x5e0]
call fcn.005436e0
mov eax, dword [esi + 0x7c]
mov dword [eax + 0xe8], 1
mov eax, dword [esi + 0x7c]
mov byte [eax + 0xec], 2
mov eax, dword [esi + 0x7c]
mov byte [eax + 0xed], bl
mov eax, dword [esi + 0x660]
test eax, eax
je 0x54c80d
lea eax, [eax + eax*4]
cmp dword [esi + eax*4 + 0x674], 0
jne 0x54ce9e
mov eax, dword [esi + 4]
push esi
mov eax, dword [eax + 0x40]
call eax
jmp 0x54ce9b
mov edx, 0x68
push 0x392
push 0x6f6080
push 0x44
lea ecx, [edx - 0x54]
call fcn.004818c0
add esp, 0xc
cmp dword [esi + 0x48], 0
je 0x54c847
cmp dword [esi + 0x2c], 1
je 0x54ce9e
cmp dword [esi + 0x60], 1
mov dword [esi + 0x48], 1
mov dword [esi + 0x2c], 1
je 0x54ce9e
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x64]
test byte [ecx + 0x30], 8
jne 0x54c87b
mov eax, dword [eax]
cmp eax, 0x304
jl 0x54c87b
cmp eax, 0x10000
jne 0x54c8a9
mov eax, dword [esi + 0x68]
cmp eax, 2
je 0x54c8a9
cmp eax, 1
je 0x54c8a9
cmp eax, 4
je 0x54c8a9
cmp eax, 3
je 0x54c8a9
cmp dword [esi + 0x44c], 1
je 0x54c8a9
mov eax, dword [ecx + 0x28]
push 0x50
call eax
add esp, 4
mov ebx, eax
jmp 0x54c8ae
mov ebx, 0x50
cmp dword [esi], 0x300
jne 0x54c8c2
cmp ebx, 0x46
jne 0x54c8c2
mov ebx, 0x28
jmp 0x54c8ca
test ebx, ebx
js 0x54ce9e
test byte [esi + 0x28], 1
je 0x54c8d8
test ebx, ebx
jne 0x54ce9e
mov edx, dword [esi + 0x474]
test edx, edx
je 0x54c8ed
mov ecx, dword [esi + 0x5e0]
call fcn.005436e0
mov eax, dword [esi + 0x7c]
mov dword [eax + 0xe8], 1
mov eax, dword [esi + 0x7c]
mov byte [eax + 0xec], 2
mov eax, dword [esi + 0x7c]
mov byte [eax + 0xed], bl
mov eax, dword [esi + 0x660]
test eax, eax
je 0x54c928
lea eax, [eax + eax*4]
cmp dword [esi + eax*4 + 0x674], 0
jne 0x54ce9e
mov eax, dword [esi + 4]
push esi
mov eax, dword [eax + 0x40]
call eax
jmp 0x54ce9b
mov edx, 0x68
push 0x3c8
push 0x6f6080
push 0x44
lea ecx, [edx - 0x54]
call fcn.004818c0
add esp, 0xc
cmp dword [esi + 0x48], 0
je 0x54c962
cmp dword [esi + 0x2c], 1
je 0x54ce9e
cmp dword [esi + 0x60], 1
mov dword [esi + 0x48], 1
mov dword [esi + 0x2c], 1
je 0x54ce9e
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x64]
test byte [ecx + 0x30], 8
jne 0x54c996
mov eax, dword [eax]
cmp eax, 0x304
jl 0x54c996
cmp eax, 0x10000
jne 0x54c9c4
mov eax, dword [esi + 0x68]
cmp eax, 2
je 0x54c9c4
cmp eax, 1
je 0x54c9c4
cmp eax, 4
je 0x54c9c4
cmp eax, 3
je 0x54c9c4
cmp dword [esi + 0x44c], 1
je 0x54c9c4
mov eax, dword [ecx + 0x28]
push 0x50
call eax
add esp, 4
mov ebx, eax
jmp 0x54c9c9
mov ebx, 0x50
cmp dword [esi], 0x300
jne 0x54c9dd
cmp ebx, 0x46
jne 0x54c9dd
mov ebx, 0x28
jmp 0x54c9e5
test ebx, ebx
js 0x54ce9e
test byte [esi + 0x28], 1
je 0x54c9f3
test ebx, ebx
jne 0x54ce9e
mov edx, dword [esi + 0x474]
test edx, edx
je 0x54ca08
mov ecx, dword [esi + 0x5e0]
call fcn.005436e0
mov eax, dword [esi + 0x7c]
mov dword [eax + 0xe8], 1
mov eax, dword [esi + 0x7c]
mov byte [eax + 0xec], 2
mov eax, dword [esi + 0x7c]
mov byte [eax + 0xed], bl
mov eax, dword [esi + 0x660]
test eax, eax
je 0x54ca43
lea eax, [eax + eax*4]
cmp dword [esi + eax*4 + 0x674], 0
jne 0x54ce9e
mov eax, dword [esi + 4]
push esi
mov eax, dword [eax + 0x40]
call eax
jmp 0x54ce9b
push 0x3da
jmp 0x54ce56
mov edx, 0x68
push 0x36a
push 0x6f6080
push 0x44
lea ecx, [edx - 0x54]
call fcn.004818c0
add esp, 0xc
cmp dword [esi + 0x48], 0
je 0x54ca87
cmp dword [esi + 0x2c], 1
je 0x54ce9e
cmp dword [esi + 0x60], 1
mov dword [esi + 0x48], 1
mov dword [esi + 0x2c], 1
je 0x54ce9e
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x64]
test byte [ecx + 0x30], 8
jne 0x54cabb
mov eax, dword [eax]
cmp eax, 0x304
jl 0x54cabb
cmp eax, 0x10000
jne 0x54cae9
mov eax, dword [esi + 0x68]
cmp eax, 2
je 0x54cae9
cmp eax, 1
je 0x54cae9
cmp eax, 4
je 0x54cae9
cmp eax, 3
je 0x54cae9
cmp dword [esi + 0x44c], 1
je 0x54cae9
mov eax, dword [ecx + 0x28]
push 0x50
call eax
add esp, 4
mov ebx, eax
jmp 0x54caee
mov ebx, 0x50
cmp dword [esi], 0x300
jne 0x54cb02
cmp ebx, 0x46
jne 0x54cb02
mov ebx, 0x28
jmp 0x54cb0a
test ebx, ebx
js 0x54ce9e
test byte [esi + 0x28], 1
je 0x54cb18
test ebx, ebx
jne 0x54ce9e
mov edx, dword [esi + 0x474]
test edx, edx
je 0x54cb2d
mov ecx, dword [esi + 0x5e0]
call fcn.005436e0
mov eax, dword [esi + 0x7c]
mov dword [eax + 0xe8], 1
mov eax, dword [esi + 0x7c]
mov byte [eax + 0xec], 2
mov eax, dword [esi + 0x7c]
mov byte [eax + 0xed], bl
mov eax, dword [esi + 0x660]
test eax, eax
je 0x54cb68
lea eax, [eax + eax*4]
cmp dword [esi + eax*4 + 0x674], 0
jne 0x54ce9e
mov eax, dword [esi + 4]
push esi
mov eax, dword [eax + 0x40]
call eax
jmp 0x54ce9b
mov eax, dword [esi + 4]
lea ecx, [esp + 0x370]
push ecx
push esi
mov eax, dword [eax + 0x64]
mov eax, dword [eax]
call eax
add esp, 0x10
cmp eax, 1
jge 0x54cba5
cmp dword [esi + 0x2c], 1
je 0x54ce9e
push 0x3f6
jmp 0x54ce56
xor eax, eax
mov dword [esp + 0x20], eax
test edi, edi
je 0x54cdc2
lea eax, [esi + 0x688]
lea ebx, [esp + 0x370]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x1c], ebx
lea edi, [esp + 0x74]
nop dword [eax]
mov edx, dword [edi + 8]
test edx, edx
je 0x54ce51
mov ecx, dword [edi]
mov eax, ecx
sub eax, dword [edx + 0xc]
mov ebx, dword [ebx]
mov dword [esp + 0x10], ecx
cmp eax, ebx
ja 0x54ce51
jae 0x54cc1a
sub ebx, eax
lea ecx, [edi - 0xc]
push 0
mov edx, ebx
call fcn.0057f2c0
add esp, 4
test eax, eax
je 0x54ce51
mov ecx, dword [esp + 0x10]
add ecx, ebx
add dword [edi - 4], ebx
mov dword [esp + 0x10], ecx
mov dword [edi], ecx
mov eax, dword [esi + 0x7c]
lea ebx, [edi - 0xc]
mov edx, ecx
test dword [eax], 0x400
je 0x54cc8f
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x54cc8f
lea ecx, [esp + 0x4c]
mov edx, eax
push ecx
mov ecx, ebx
call fcn.0057f2c0
add esp, 4
test eax, eax
je 0x54ce0e
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
add eax, ecx
mov ebx, dword [esp + 0x1c]
add dword [edi - 4], ecx
mov dword [esp + 0x10], eax
mov dword [edi], eax
mov eax, dword [esi + 4]
push 1
push dword [esp + 0x50]
mov ecx, dword [eax + 0x64]
lea eax, [ebx - 8]
push eax
push esi
mov eax, dword [ecx + 4]
call eax
add esp, 0x10
test eax, eax
je 0x54ce0e
mov eax, dword [esp + 0x2c]
add dword [ebx], eax
mov edx, dword [esp + 0x10]
jmp 0x54cc93
mov ebx, dword [esp + 0x1c]
mov eax, dword [edi + 8]
sub edx, dword [eax + 0xc]
cmp dword [eax], 0
mov dword [esp + 0x10], edx
je 0x54ce4a
lea ecx, [edi - 0xc]
mov edx, eax
push 1
call fcn.0057f3c0
add esp, 4
test eax, eax
je 0x54ce4a
mov edx, dword [esi + 0x84]
test edx, edx
je 0x54cd6b
mov ecx, dword [edi - 8]
test ecx, ecx
jne 0x54ccd8
mov eax, dword [edi - 0xc]
mov ecx, dword [eax + 4]
push dword [esi + 0x88]
mov eax, dword [edi - 4]
add ecx, 0xfffffffb
sub eax, dword [esp + 0x14]
push esi
push 5
add eax, ecx
push eax
push 0x100
push 0
push 1
call edx
mov ecx, dword [esi + 4]
add esp, 0x1c
mov eax, dword [ecx + 0x64]
test byte [eax + 0x30], 8
jne 0x54cd18
mov eax, dword [ecx]
cmp eax, 0x304
jl 0x54cd18
cmp eax, 0x10000
jne 0x54cd38
mov eax, dword [esi + 0x68]
cmp eax, 2
je 0x54cd38
cmp eax, 1
je 0x54cd38
cmp eax, 4
je 0x54cd38
cmp eax, 3
je 0x54cd38
cmp dword [esi + 0x44c], 1
jne 0x54cd6b
cmp dword [esi + 0x3ec], 0
je 0x54cd6b
push dword [esi + 0x88]
mov eax, dword [esp + 0x1c]
push esi
mov byte [esp + 0x6b], al
lea eax, [esp + 0x6b]
push 1
push eax
mov eax, dword [esi + 0x84]
push 0x101
push dword [esi]
push 1
call eax
add esp, 0x1c
lea ecx, [edi - 0xc]
call fcn.0057f480
test eax, eax
je 0x54ce43
mov ecx, dword [ebx]
mov eax, dword [esp + 0x18]
add ecx, 5
cmp dword [ebp + 0x14], 0
mov dword [ebx - 4], eax
mov dword [ebx], ecx
jne 0x54ce15
mov eax, dword [esp + 0x64]
add ebx, 0x30
add eax, ecx
mov dword [esp + 0x1c], ebx
mov ecx, dword [esp + 0x5c]
add edi, 0x18
mov dword [ecx], eax
add ecx, 0x14
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x20], eax
cmp eax, dword [ebp + 0x10]
jb 0x54cbd0
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x18]
push edi
push ecx
mov dword [esi + 0xf1c], edx
push edx
mov dword [esi + 0xf10], ecx
mov edx, eax
mov dword [esi + 0xf14], eax
mov dword [esi + 0xf18], ecx
mov ecx, esi
call fcn.0054cef0
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x960]
xor ecx, esp
call fcn.00628f0a
mov esp, ebp
pop ebp
ret
push 0x413
jmp 0x54ce56
cmp dword [esp + 0x20], 0
je 0x54ce23
push 0x445
jmp 0x54ce56
mov edi, dword [esp + 0x44]
mov eax, 1
mov dword [edi], ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x960]
xor ecx, esp
call fcn.00628f0a
mov esp, ebp
pop ebp
ret
push 0x431
jmp 0x54ce56
push 0x41c
jmp 0x54ce56
push 0x40a
mov edx, 0x68
push 0x6f6080
push 0x44
lea ecx, [edx - 0x54]
call fcn.004818c0
add esp, 0xc
cmp dword [esi + 0x48], 0
je 0x54ce79
cmp dword [esi + 0x2c], 1
je 0x54ce9e
cmp dword [esi + 0x60], 1
mov dword [esi + 0x2c], 1
mov dword [esi + 0x48], 1
je 0x54ce9e
push 0x50
mov edx, 2
mov ecx, esi
call fcn.005739a0
add esp, 4
mov ebx, dword [esp + 0x34]
test ebx, ebx
je 0x54ced5
lea edi, [esp + 0x7c]
nop word [eax + eax]
mov eax, dword [edi]
test eax, eax
je 0x54cec7
mov esi, dword [eax]
push eax
call fcn.0062fb07
add esp, 4
mov eax, esi
test esi, esi
jne 0x54ceb6
mov dword [edi], 0
add edi, 0x18
sub ebx, 1
jne 0x54ceb0
mov ecx, dword [esp + 0x96c]
or eax, 0xffffffff
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00628f0a
mov esp, ebp
pop ebp
ret