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

Disassembly:
mov al, byte [0xb7cd6c]
jmp 0x54c928
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x83ca33
push eax
mov al, byte [0xb73c90]
mov dword fs:[0], esp
sub esp, 0x1d4
test al, 1
push ebx
push ebp
push esi
push edi
mov esi, ecx
jne 0x54ba91
or dword [0xb73c90], 1
movsx eax, word [esi + 0x22]
mov eax, dword [eax*4 + 0xa9b0c8]
xor ebx, ebx
mov byte [esp + 0x12], bl
mov byte [esp + 0x29], bl
mov byte [esp + 0x2a], bl
mov byte [esp + 0x13], bl
mov eax, dword [eax + 0x14]
mov ecx, dword [eax + 0x24]
lea edx, [esp + 0x10c]
mov dword [esp + 0xc4], ecx
push edx
mov ecx, esi
mov ebp, 4
mov dword [esp + 0x18], 0xbf800000
mov dword [esp + 0x20], 0xbf800000
mov byte [esp + 0x2f], bl
call fcn.00534290
mov edx, dword [esp + 0x1f4]
xor eax, eax
cmp edx, ebx
setle al
dec eax
and eax, edx
mov edi, eax
cmp edi, 0x77
jl 0x54bb00
mov edi, 0x77
mov eax, dword [esp + 0x1f8]
xor ecx, ecx
cmp eax, ebx
setle cl
dec ecx
and ecx, eax
cmp ecx, 0x77
jl 0x54bb1b
mov ecx, 0x77
imul ecx, ecx, 0x78
add ecx, edi
and eax, 0xf
lea ecx, [ecx*8 + 0xb7d0b8]
and edx, 0xf
shl eax, 4
mov dword [esp + 0x8c], ecx
add eax, edx
lea ecx, [eax + eax*2]
lea ecx, [ecx*4 + 0xb992b8]
mov dword [esp + 0xe0], ecx
lea ebx, [ebx]
dec ebp
cmp ebp, 3
mov dword [esp + 0xa8], ebp
ja case.default.0x54bb5d
jmp dword [ebp*4 + 0x54cfe0]
mov edx, dword [esp + 0x8c]
jmp 0x54bb7f
mov dword [esp + 0x3c], ecx
jmp case.default.0x54bb5d
lea eax, [ecx + 8]
mov dword [esp + 0x3c], eax
jmp case.default.0x54bb5d
lea edx, [ecx + 4]
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
cmp eax, ebx
je 0x54cfac
mov edi, dword [eax]
mov ecx, dword [eax + 4]
test byte [edi + 0x1c], 1
mov dword [esp + 0xe4], ecx
je 0x54cf8d
cmp edi, esi
je 0x54cf8d
mov ax, word [edi + 0x2c]
cmp ax, word [0xb7cd78]
je 0x54cf8d
mov edx, dword [esp + 0xc4]
push edx
lea eax, [esp + 0x110]
push eax
mov ecx, edi
call fcn.005344b0
test al, al
je 0x54cf54
mov eax, dword [esi + 0x40]
and eax, 0xffffefff
mov byte [esp + 0x12], 0
mov byte [esp + 0x29], 0
mov byte [esp + 0x2a], 0
mov byte [esp + 0x13], 0
mov dword [esi + 0x40], eax
mov cl, byte [edi + 0x36]
and cl, 7
cmp cl, 1
mov edx, eax
jne 0x54bcb5
test dl, 0x40
mov byte [esp + 0x29], 0
je 0x54bc27
mov eax, dword [esi + 0x1c]
shr eax, 4
test cl, al
je 0x54bc27
mov byte [esp + 0x13], cl
test dl, 4
je 0x54bc4a
mov cl, byte [esi + 0x36]
and cl, 7
cmp cl, 2
jne 0x54bc40
cmp dword [esi + 0x594], 6
jne 0x54bc4a
mov byte [esp + 0x12], 1
jmp 0x54bcd2
mov ecx, dword [esi + 0xfc]
cmp ecx, ebx
je 0x54bc6e
mov al, byte [ecx + 0x36]
and al, 7
cmp al, 1
jbe 0x54bc6e
cmp al, 5
jae 0x54bc6e
test byte [ecx + 0x40], 4
je 0x54bc6e
mov byte [esp + 0x12], 1
jmp 0x54bcd2
cmp dword [esi + 0x128], edi
jne 0x54bc7d
mov byte [esp + 0x12], 1
jmp 0x54bcd2
test dl, dl
jns 0x54bc8d
test dl, 2
jne 0x54bc8d
mov byte [esp + 0x12], 1
jmp 0x54bcd2
test edx, case.0x75f359.4
je 0x54bcd2
mov al, byte [esi + 0x36]
shr al, 3
test al, al
je 0x54bcd2
cmp al, 8
je 0x54bcd2
mov ecx, edi
call fcn.00532d40
test al, al
je 0x54bcd2
mov byte [esp + 0x12], 1
jmp 0x54bcd2
mov edx, dword [esi]
lea eax, [esp + 0x13]
push eax
lea ecx, [esp + 0x2e]
push ecx
lea eax, [esp + 0x31]
push eax
lea ecx, [esp + 0x1e]
push ecx
push ebx
push edi
mov ecx, esi
call dword [edx + 0x3c]
test byte [esi + 0x1c], 1
je 0x54cefc
mov al, byte [esp + 0x29]
test al, al
jne 0x54cefc
mov al, byte [esp + 0x12]
test al, al
jne 0x54cefc
mov dl, byte [edi + 0x36]
and dl, 7
cmp dl, 1
je 0x54c94b
test byte [edi + 0x40], 8
jne 0x54c94b
mov al, byte [esp + 0x2a]
test al, al
jne 0x54c94b
mov ax, word [0xb7cd78]
push 0xb73710
mov word [edi + 0x2c], ax
mov edx, dword [esi]
push edi
mov ecx, esi
call dword [edx + 0x58]
mov edx, eax
cmp edx, ebx
mov dword [esp + 0x38], edx
mov dword [esp + 0x18], ebx
jle 0x54cf8d
mov eax, dword [esi + 0x1c]
mov ecx, eax
shr ecx, 3
and cl, 1
mov dword [esp + 0x34], 0
mov dword [esp + 0x2c], 0
je 0x54be56
mov ebx, dword [edi + 0x1c]
shr ebx, 3
test bl, 1
je 0x54be56
test edx, edx
jle 0x54c586
mov ebp, 0xb73734
mov dword [esp + 0x24], edx
mov al, byte [esp + 0x13]
test al, al
jne 0x54be02
mov al, byte [ebp - 3]
cmp al, 0xd
jb 0x54bd96
cmp al, 0x10
jbe 0x54be02
mov al, byte [ebp]
cmp al, 0xd
jb 0x54bda1
cmp al, 0x10
jbe 0x54be02
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x18]
push ecx
lea ebx, [ebp - 0x24]
push ebx
push edi
mov ecx, esi
call fcn.00548680
test al, al
je 0x54be3f
fld dword [esp + 0x14]
fcomp dword [esp + 0x34]
fnstsw ax
test ah, 0x41
jne 0x54bdd6
mov edx, dword [esp + 0x14]
mov dword [esp + 0x34], edx
fld dword [esp + 0x1c]
fcomp dword [esp + 0x2c]
fnstsw ax
test ah, 0x41
jne 0x54bded
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x14]
push 0x3f800000
push ebx
push edi
push ecx
mov ecx, esi
call fcn.005428c0
jmp 0x54be2c
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x18]
push ecx
lea ebx, [ebp - 0x24]
push ebx
inc edx
push edi
mov ecx, esi
mov dword [esp + 0x28], edx
call fcn.0054a2c0
mov al, byte [ebp]
cmp al, 0xd
jb 0x54be3f
cmp al, 0x10
ja 0x54be3f
mov edx, dword [esp + 0x1c]
push 0xbf800000
push ebx
push esi
mov ecx, edi
push edx
call fcn.005428c0
mov eax, dword [esp + 0x24]
add ebp, 0x2c
dec eax
mov dword [esp + 0x24], eax
jne 0x54bd83
jmp 0x54c586
test cl, cl
je 0x54c124
lea ebx, [esi + 0x5c]
mov ecx, ebx
mov ebp, dword [ecx]
mov dword [esp + 0x90], ebp
mov ebp, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x98], ecx
lea ecx, [esi + 0x68]
mov dword [esp + 0x94], ebp
mov ebp, dword [ecx]
and eax, 0xfffffff7
test edx, edx
mov dword [esp + 0x9c], ebp
mov ebp, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0xa4], ecx
mov dword [esi + 0x1c], eax
mov dword [esp + 0xc8], 0
mov ecx, dword [esp + 0xc8]
mov eax, ebx
mov dword [eax], ecx
mov dword [esp + 0xcc], 0
mov ecx, dword [esp + 0xcc]
mov dword [eax + 4], ecx
mov dword [esp + 0xd0], 0
mov ecx, dword [esp + 0xd0]
mov dword [eax + 8], ecx
mov dword [esp + 0xb8], 0
mov ecx, dword [esp + 0xb8]
lea eax, [esi + 0x68]
mov dword [eax], ecx
mov dword [esp + 0xbc], 0
mov ecx, dword [esp + 0xbc]
mov dword [eax + 4], ecx
mov dword [esp + 0xc0], 0
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0xa0], ebp
mov dword [eax + 8], ecx
jle 0x54c0cd
mov ebp, 0xb73710
mov dword [esp + 0x30], edx
jmp 0x54bf40
mov al, byte [esp + 0x13]
test al, al
jne 0x54c081
mov al, byte [ebp + 0x21]
cmp al, 0xd
jb 0x54bf5b
cmp al, 0x10
jbe 0x54c081
mov al, byte [ebp + 0x24]
cmp al, 0xd
jb 0x54bf6a
cmp al, 0x10
jbe 0x54c081
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x18]
push eax
push ebp
push edi
mov ecx, esi
call fcn.00548680
test al, al
je 0x54c0bb
fld dword [esp + 0x14]
fcomp dword [esp + 0x34]
fnstsw ax
test ah, 0x41
jne 0x54bf9c
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x34], ecx
fld dword [esp + 0x1c]
fcomp dword [esp + 0x2c]
fnstsw ax
test ah, 0x41
jne 0x54bfb3
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x14]
push 0x3f800000
push ebp
push edi
push eax
mov ecx, esi
call fcn.005428c0
mov ecx, dword [esp + 0x1c]
push 0xbf800000
push ebp
push esi
push ecx
mov ecx, edi
call fcn.005428c0
push ebp
mov ecx, 0xb79538
call fcn.0055eb50
fidiv dword [esp + 0x38]
mov dl, byte [esi + 0x36]
and dl, 7
cmp dl, 2
fstp dword [esp + 0x24]
jne 0x54c03c
mov al, byte [edi + 0x36]
and al, 7
cmp al, dl
jne 0x54c03c
lea ecx, [esi + 0x44]
call fcn.00406da0
fcomp dword [0x8cd7b0]
fnstsw ax
test ah, 0x41
je 0x54c02a
lea ecx, [esi + 0x50]
call fcn.00406da0
fcomp dword [0x8cd7b4]
fnstsw ax
test ah, 0x41
jne 0x54c03c
fld dword [esp + 0x24]
fmul dword [0x8cd7ac]
fmul dword [esp + 0x14]
fstp dword [esp + 0x24]
mov ecx, edi
call fcn.004633e0
test al, al
push ebp
je 0x54c05e
mov ecx, dword [esp + 0x28]
push ecx
mov ecx, esi
call fcn.005454c0
test al, al
je 0x54c0bb
or dword [esi + 0x1c], 8
jmp 0x54c0bb
mov edx, dword [esp + 0x28]
push edx
push edi
mov ecx, esi
call fcn.00545980
test al, al
je 0x54c0bb
mov edx, dword [esi + 0x1c]
mov eax, 8
or edx, eax
mov dword [esi + 0x1c], edx
or dword [edi + 0x1c], eax
jmp 0x54c0bb
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x18]
push ecx
push ebp
inc edx
push edi
mov ecx, esi
mov dword [esp + 0x28], edx
call fcn.0054a2c0
mov al, byte [ebp + 0x24]
cmp al, 0xd
jb 0x54c0bb
cmp al, 0x10
ja 0x54c0bb
mov edx, dword [esp + 0x1c]
push 0xbf800000
push ebp
push esi
push edx
mov ecx, edi
call fcn.005428c0
mov eax, dword [esp + 0x30]
add ebp, 0x2c
dec eax
mov dword [esp + 0x30], eax
jne 0x54bf40
mov eax, dword [esi + 0x1c]
mov ecx, eax
shr ecx, 3
test cl, 1
jne 0x54c586
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x98]
or eax, 8
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x94]
mov dword [ebx], edx
mov edx, dword [esp + 0x9c]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0xa0]
mov dword [ebx + 8], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esi + 0x68], edx
mov dword [esi + 0x6c], eax
mov dword [esi + 0x70], ecx
jmp 0x54c586
mov eax, dword [edi + 0x1c]
mov ecx, eax
shr ecx, 3
test cl, 1
je 0x54c3e6
lea ebx, [edi + 0x5c]
mov edx, ebx
mov ecx, dword [edx]
mov dword [esp + 0xd4], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0xdc], edx
mov dword [esp + 0xd8], ecx
lea ecx, [edi + 0x68]
mov edx, ecx
mov ebp, dword [edx]
and eax, 0xfffffff7
mov dword [esp + 0x80], ebp
mov ebp, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [edi + 0x1c], eax
mov dword [esp + 0x88], edx
mov dword [esp + 0xac], 0
mov edx, dword [esp + 0xac]
mov eax, ebx
mov dword [eax], edx
mov dword [esp + 0xb0], 0
mov edx, dword [esp + 0xb0]
mov dword [eax + 4], edx
mov dword [esp + 0xb4], 0
mov edx, dword [esp + 0xb4]
mov dword [eax + 8], edx
mov dword [esp + 0x74], 0
mov eax, dword [esp + 0x74]
mov dword [ecx], eax
mov dword [esp + 0x78], 0
mov edx, dword [esp + 0x78]
mov dword [esp + 0x7c], 0
mov eax, dword [esp + 0x7c]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x38]
test eax, eax
mov dword [esp + 0x84], ebp
jle 0x54c38f
mov ecx, eax
mov ebp, 0xb73710
mov dword [esp + 0x30], ecx
mov al, byte [esp + 0x13]
test al, al
jne 0x54c343
mov al, byte [ebp + 0x21]
cmp al, 0xd
jb 0x54c21d
cmp al, 0x10
jbe 0x54c343
mov al, byte [ebp + 0x24]
cmp al, 0xd
jb 0x54c22c
cmp al, 0x10
jbe 0x54c343
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x18]
push eax
push ebp
push edi
mov ecx, esi
call fcn.00548680
test al, al
je 0x54c37d
fld dword [esp + 0x14]
fcomp dword [esp + 0x34]
fnstsw ax
test ah, 0x41
jne 0x54c25e
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x34], ecx
fld dword [esp + 0x1c]
fcomp dword [esp + 0x2c]
fnstsw ax
test ah, 0x41
jne 0x54c275
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x14]
push 0x3f800000
push ebp
push edi
push eax
mov ecx, esi
call fcn.005428c0
mov ecx, dword [esp + 0x1c]
push 0xbf800000
push ebp
push esi
push ecx
mov ecx, edi
call fcn.005428c0
push ebp
mov ecx, 0xb79538
call fcn.0055eb50
fidiv dword [esp + 0x38]
mov dl, byte [esi + 0x36]
and dl, 7
cmp dl, 2
fstp dword [esp + 0x24]
jne 0x54c2fe
mov al, byte [edi + 0x36]
and al, 7
cmp al, dl
jne 0x54c2fe
lea ecx, [esi + 0x44]
call fcn.00406da0
fcomp dword [0x8cd7b0]
fnstsw ax
test ah, 0x41
je 0x54c2ec
lea ecx, [esi + 0x50]
call fcn.00406da0
fcomp dword [0x8cd7b4]
fnstsw ax
test ah, 0x41
jne 0x54c2fe
fld dword [esp + 0x24]
fmul dword [0x8cd7ac]
fmul dword [esp + 0x14]
fstp dword [esp + 0x24]
mov ecx, edi
call fcn.004633e0
test al, al
push ebp
je 0x54c320
mov ecx, dword [esp + 0x28]
push ecx
mov ecx, esi
call fcn.005454c0
test al, al
je 0x54c37d
or dword [esi + 0x1c], 8
jmp 0x54c37d
mov edx, dword [esp + 0x28]
push edx
push edi
mov ecx, esi
call fcn.00545980
test al, al
je 0x54c37d
mov edx, dword [esi + 0x1c]
mov eax, 8
or edx, eax
mov dword [esi + 0x1c], edx
or dword [edi + 0x1c], eax
jmp 0x54c37d
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x18]
push ecx
push ebp
inc edx
push edi
mov ecx, esi
mov dword [esp + 0x28], edx
call fcn.0054a2c0
mov al, byte [ebp + 0x24]
cmp al, 0xd
jb 0x54c37d
cmp al, 0x10
ja 0x54c37d
mov edx, dword [esp + 0x1c]
push 0xbf800000
push ebp
push esi
push edx
mov ecx, edi
call fcn.005428c0
mov eax, dword [esp + 0x30]
add ebp, 0x2c
dec eax
mov dword [esp + 0x30], eax
jne 0x54c202
mov eax, dword [edi + 0x1c]
mov ecx, eax
shr ecx, 3
test cl, 1
jne 0x54c586
mov edx, dword [esp + 0xd4]
mov ecx, dword [esp + 0xdc]
or eax, 8
mov dword [edi + 0x1c], eax
mov eax, dword [esp + 0xd8]
mov dword [ebx], edx
mov edx, dword [esp + 0x80]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x84]
mov dword [ebx + 8], ecx
mov ecx, dword [esp + 0x88]
mov dword [edi + 0x68], edx
mov dword [edi + 0x6c], eax
mov dword [edi + 0x70], ecx
jmp 0x54c586
test edx, edx
jle 0x54c586
mov ebx, dword [esp + 0x18]
mov ebp, 0xb73710
mov dword [esp + 0x30], edx
jmp 0x54c400
mov al, byte [esp + 0x13]
test al, al
jne 0x54c53e
mov al, byte [ebp + 0x21]
cmp al, 0xd
jb 0x54c427
cmp al, 0x10
jbe 0x54c53e
cmp al, 0xd
jb 0x54c427
cmp al, 0x10
jbe 0x54c53e
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x18]
push eax
push ebp
push edi
mov ecx, esi
call fcn.00548680
test al, al
je 0x54c570
fld dword [esp + 0x14]
fcomp dword [esp + 0x34]
fnstsw ax
test ah, 0x41
jne 0x54c459
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x34], ecx
fld dword [esp + 0x1c]
fcomp dword [esp + 0x2c]
fnstsw ax
test ah, 0x41
jne 0x54c470
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x14]
push 0x3f800000
push ebp
push edi
push eax
mov ecx, esi
call fcn.005428c0
mov ecx, dword [esp + 0x1c]
push 0xbf800000
push ebp
push esi
push ecx
mov ecx, edi
call fcn.005428c0
push ebp
mov ecx, 0xb79538
call fcn.0055eb50
fidiv dword [esp + 0x38]
mov dl, byte [esi + 0x36]
and dl, 7
cmp dl, 2
fstp dword [esp + 0x24]
jne 0x54c4f9
mov al, byte [edi + 0x36]
and al, 7
cmp al, dl
jne 0x54c4f9
lea ecx, [esi + 0x44]
call fcn.00406da0
fcomp dword [0x8cd7b0]
fnstsw ax
test ah, 0x41
je 0x54c4e7
lea ecx, [esi + 0x50]
call fcn.00406da0
fcomp dword [0x8cd7b4]
fnstsw ax
test ah, 0x41
jne 0x54c4f9
fld dword [esp + 0x24]
fmul dword [0x8cd7ac]
fmul dword [esp + 0x14]
fstp dword [esp + 0x24]
mov ecx, edi
call fcn.004633e0
test al, al
push ebp
je 0x54c51b
mov ecx, dword [esp + 0x28]
push ecx
mov ecx, esi
call fcn.005454c0
test al, al
je 0x54c570
or dword [esi + 0x1c], 8
jmp 0x54c570
mov edx, dword [esp + 0x28]
push edx
push edi
mov ecx, esi
call fcn.00545980
test al, al
je 0x54c570
mov edx, dword [esi + 0x1c]
mov eax, 8
or edx, eax
mov dword [esi + 0x1c], edx
or dword [edi + 0x1c], eax
jmp 0x54c570
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x18]
push ecx
push ebp
push edi
mov ecx, esi
inc ebx
call fcn.0054a2c0
mov al, byte [ebp + 0x24]
cmp al, 0xd
jb 0x54c570
cmp al, 0x10
ja 0x54c570
mov edx, dword [esp + 0x1c]
push 0xbf800000
push ebp
push esi
push edx
mov ecx, edi
call fcn.005428c0
mov eax, dword [esp + 0x30]
add ebp, 0x2c
dec eax
mov dword [esp + 0x30], eax
jne 0x54c400
mov dword [esp + 0x18], ebx
mov al, byte [edi + 0x36]
and al, 7
cmp al, 3
jne 0x54c5d6
mov cl, byte [esi + 0x36]
and cl, 7
cmp cl, 2
jne 0x54c5d6
mov ecx, edi
call fcn.005df8f0
test al, al
je 0x54c5c2
mov eax, dword [edi + 0x1c]
test ah, 0x10
je 0x54c5d6
lea ecx, [esi + 0x44]
call fcn.00406da0
fcomp dword [0x858cd8]
fnstsw ax
test ah, 0x41
jne 0x54c5d6
mov edx, dword [esp + 0x2c]
push 0
push edx
push esi
mov ecx, edi
call fcn.005f0360
jmp 0x54c900
mov bl, byte [esi + 0x36]
and bl, 7
cmp bl, 3
jne 0x54c64c
mov al, byte [edi + 0x36]
and al, 7
cmp al, 2
jne 0x54c64c
cmp dword [edi + 0x594], 6
jne 0x54c64c
lea ecx, [esi + 0xe0]
push ecx
lea ebp, [edi + 0x44]
push ebp
call fcn.0040fdb0
fcomp dword [0x858cc4]
add esp, 8
fnstsw ax
test ah, 0x41
je 0x54c633
test dword [esi + 0x474], 0x100000
je 0x54c64c
mov ecx, ebp
call fcn.00406da0
fcomp dword [0x859978]
fnstsw ax
test ah, 0x41
jne 0x54c64c
fld dword [esp + 0x34]
push 0
push ecx
fadd st(0), st(0)
mov ecx, esi
fstp dword [esp]
push edi
call fcn.005f0360
jmp 0x54c900
mov al, byte [edi + 0x36]
and al, 7
cmp al, 4
jne 0x54c7a2
test byte [edi + 0x1c], 1
je 0x54c7a2
cmp bl, 2
jne 0x54c7a2
mov cl, byte [edi + 0x144]
test cl, cl
je 0x54c6a5
fld dword [esp + 0x2c]
fcomp dword [0x858ba4]
fnstsw ax
test ah, 0x41
jne 0x54c6a5
mov edx, dword [esp + 0x2c]
push 0x32
push esi
push 0xb73720
push 0xb73710
push edx
mov ecx, edi
call fcn.005a0d90
jmp 0x54c900
cmp cl, 0x14
jb 0x54c900
xor ebx, ebx
mov dword [esp + 0x188], ebx
mov dword [esp + 0x18c], ebx
movsx eax, word [edi + 0x22]
mov eax, dword [eax*4 + 0xa9b0c8]
mov ecx, dword [eax + 0x14]
mov eax, ecx
push ecx
add eax, 0xc
push eax
lea ecx, [esp + 0x70]
push ecx
mov dword [esp + 0x1f8], ebx
call fcn.0040fe60
mov eax, dword [edi + 0x14]
lea edx, [esp + 0x74]
push edx
push eax
lea eax, [esp + 0x1a4]
push eax
call fcn.0059c890
mov ecx, dword [eax]
mov dword [esp + 0x80], ecx
mov edx, dword [eax + 4]
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x84], edx
mov eax, dword [eax + 8]
add esp, 0x18
cmp ecx, ebx
mov dword [esp + 0x70], eax
lea eax, [ecx + 0x30]
jne 0x54c724
lea eax, [esi + 4]
fld dword [eax + 8]
fcomp dword [esp + 0x70]
fnstsw ax
test ah, 0x41
je 0x54c77d
lea edx, [esp + 0x148]
push edx
push ecx
call fcn.0059b920
add esp, 8
push eax
lea ecx, [esp + 0x14c]
call fcn.0059bbc0
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x14c]
push ecx
lea edx, [esp + 0x120]
push edx
call fcn.0059c890
fld dword [eax + 8]
fcomp dword [0x858b50]
add esp, 0xc
fnstsw ax
test ah, 5
jp 0x54c796
push 0x32
push esi
push 0xb73720
push 0xb73710
mov ecx, edi
push 0x42480000
call fcn.005a0d90
lea ecx, [esp + 0x148]
jmp 0x54c8f0
cmp bl, 4
jne 0x54c900
test byte [esi + 0x1c], 1
je 0x54c900
cmp al, 2
jne 0x54c900
mov al, byte [esi + 0x144]
test al, al
je 0x54c7f6
fld dword [esp + 0x2c]
fcomp dword [0x858ba4]
fnstsw ax
test ah, 0x41
jne 0x54c7f6
mov eax, dword [esp + 0x2c]
push 0x32
push edi
push 0xb73720
push 0xb73710
push eax
mov ecx, esi
call fcn.005a0d90
jmp 0x54c900
cmp byte [edi + 0x144], 0x14
jb 0x54c900
xor ebx, ebx
mov dword [esp + 0x1dc], ebx
mov dword [esp + 0x1e0], ebx
movsx ecx, word [esi + 0x22]
mov eax, dword [ecx*4 + 0xa9b0c8]
mov ecx, dword [eax + 0x14]
mov eax, ecx
push ecx
add eax, 0xc
push eax
lea edx, [esp + 0x64]
push edx
mov dword [esp + 0x1f8], 1
call fcn.0040fe60
mov eax, dword [esi + 0x14]
lea ecx, [esp + 0x68]
push ecx
push eax
lea edx, [esp + 0x150]
push edx
call fcn.0059c890
mov ecx, dword [eax]
mov dword [esp + 0x74], ecx
mov edx, dword [eax + 4]
mov ecx, dword [edi + 0x14]
mov dword [esp + 0x78], edx
mov eax, dword [eax + 8]
add esp, 0x18
cmp ecx, ebx
mov dword [esp + 0x64], eax
lea eax, [ecx + 0x30]
jne 0x54c877
lea eax, [edi + 4]
fld dword [esp + 0x64]
fcomp dword [eax + 8]
fnstsw ax
test ah, 5
jnp 0x54c8d0
lea edx, [esp + 0x19c]
push edx
push ecx
call fcn.0059b920
add esp, 8
push eax
lea ecx, [esp + 0x1a0]
call fcn.0059bbc0
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x1a0]
push ecx
lea edx, [esp + 0x12c]
push edx
call fcn.0059c890
fld dword [eax + 8]
fcomp dword [0x858b50]
add esp, 0xc
fnstsw ax
test ah, 5
jp 0x54c8e9
push 0x32
push edi
push 0xb73720
push 0xb73710
mov ecx, esi
push 0x42480000
call fcn.005a0d90
lea ecx, [esp + 0x19c]
mov dword [esp + 0x1ec], 0xffffffff
call fcn.0059acd0
mov al, byte [edi + 0x36]
mov cl, al
and cl, 0xf8
cmp cl, 0x10
jne 0x54c923
and al, 7
or al, 0x18
mov byte [edi + 0x36], al
and al, 7
cmp al, 2
jne 0x54c923
push edi
call fcn.00423fc0
add esp, 4
jmp 0x401f74
test al, al
je 0x54c936
mov byte [esp + 0x2b], 1
jmp 0x54cf8d
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x38], edx
jle 0x54cf8d
mov al, 1
jmp 0x54cfc3
mov ax, word [0xb7cd78]
push 0xb73710
mov word [edi + 0x2c], ax
mov edx, dword [esi]
push edi
mov ecx, esi
call dword [edx + 0x58]
cmp eax, ebx
mov dword [esp + 0x38], eax
jle 0x54cf8d
mov ecx, dword [esi + 0x1c]
shr ecx, 3
test cl, 1
mov byte [esp + 0x23], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
je 0x54ca83
cmp eax, ebx
jle 0x54cf8d
mov ebp, 0xb73710
mov ebx, eax
lea esp, [esp]
mov al, byte [esp + 0x13]
test al, al
jne 0x54ca66
mov al, byte [ebp + 0x21]
cmp al, 0xd
jb 0x54c9e7
cmp al, 0x10
jbe 0x54ca66
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x1c]
push ecx
push ebp
push edi
mov ecx, esi
call fcn.00544d50
test al, al
je 0x54ca74
mov al, byte [esp + 0x23]
fld dword [esp + 0x14]
fcomp dword [esp + 0x40]
inc al
mov byte [esp + 0x23], al
fnstsw ax
test ah, 0x41
jne 0x54ca24
mov edx, dword [esp + 0x14]
mov dword [esp + 0x40], edx
mov al, byte [esi + 0x36]
and al, 7
cmp al, 2
jne 0x54ca51
cmp dword [esi + 0x590], 5
jne 0x54ca3c
cmp byte [ebp + 0x23], 0x2b
je 0x54ca74
mov ecx, dword [esp + 0x14]
push 0x3f800000
push ebp
push edi
push ecx
mov ecx, esi
call fcn.005428c0
jmp 0x54ca74
mov edx, dword [esp + 0x14]
push 0x3f800000
push ebp
push edi
push edx
mov ecx, esi
call fcn.005428c0
jmp 0x54ca74
lea eax, [esp + 0x14]
push eax
push ebp
push edi
mov ecx, esi
call fcn.00543890
add ebp, 0x2c
dec ebx
jne 0x54c9d0
jmp 0x54cd04
cmp eax, ebx
jle 0x54cf8d
mov ebp, 0xb73710
mov dword [esp + 0x30], eax
mov al, byte [esp + 0x13]
test al, al
jne 0x54ccb0
mov al, byte [ebp + 0x21]
cmp al, 0xd
jb 0x54caaf
cmp al, 0x10
jbe 0x54ccb0
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x1c]
push eax
push ebp
push edi
mov ecx, esi
call fcn.00544d50
test al, al
je 0x54ccf2
mov al, byte [esp + 0x23]
fld dword [esp + 0x14]
fcomp dword [esp + 0x40]
inc al
mov byte [esp + 0x23], al
fnstsw ax
test ah, 0x41
jne 0x54caf0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x40], ecx
push ebp
mov ecx, 0xb79538
call fcn.0055eb50
fidiv dword [esp + 0x38]
mov dl, byte [esi + 0x36]
and dl, 7
cmp dl, 2
fstp dword [esp + 0x18]
jne 0x54cc83
mov eax, dword [esi + 0x590]
mov ebx, 5
cmp eax, ebx
jne 0x54cb31
cmp byte [ebp + 0x23], 0x2b
jne 0x54cb31
mov dword [esp + 0x18], 0
jmp 0x54cb44
mov eax, dword [esp + 0x14]
push 0x3f800000
push ebp
push edi
push eax
mov ecx, esi
call fcn.005428c0
cmp word [esi + 0x22], 0x1b9
jne 0x54cb5b
fld dword [esp + 0x18]
fmul dword [0x858cc4]
jmp 0x54cc59
cmp dword [esi + 0x590], ebx
jne 0x54cbb2
fld dword [ebp + 0x18]
fcomp dword [0x858cc8]
fnstsw ax
test ah, 0x41
jne 0x54cc16
movzx ecx, byte [ebp + 0x23]
push ecx
mov ecx, 0xb79538
call fcn.0055e5c0
cmp eax, 3
je 0x54cba3
movzx edx, byte [ebp + 0x23]
push edx
mov ecx, 0xb79538
call fcn.0055e5c0
cmp eax, 4
jne 0x54cc5d
fld dword [esp + 0x18]
fmul dword [0x858b3c]
jmp 0x54cc59
cmp dword [esi + 0x594], 6
je 0x54cc5d
mov bl, byte [esi + 0x36]
shr bl, 3
cmp bl, 5
jne 0x54cbd9
fld dword [esp + 0x18]
fmul dword [0x858b3c]
jmp 0x54cc59
mov eax, dword [esi + 0x14]
fld dword [eax + 0x28]
fcomp dword [0x858c24]
fnstsw ax
test ah, 0x41
jne 0x54cc20
lea ecx, [esi + 0x44]
call fcn.00406da0
fcomp dword [0x8cd7b0]
fnstsw ax
test ah, 5
jp 0x54cc20
lea ecx, [esi + 0x50]
call fcn.00406da0
fcomp dword [0x8cd7b4]
fnstsw ax
test ah, 5
jp 0x54cc20
mov dword [esp + 0x18], 0
jmp 0x54cc5d
cmp bl, 4
je 0x54cc45
mov eax, dword [esi + 0x14]
add eax, 0x20
push eax
lea eax, [ebp + 0x10]
push eax
call fcn.0040fdb0
fcomp dword [0x863c1c]
add esp, 8
fnstsw ax
test ah, 5
jp 0x54cc5d
fld dword [0x8cd7a8]
fdiv dword [esi + 0x8c]
fmul dword [esp + 0x18]
fmul dword [esp + 0x14]
fstp dword [esp + 0x18]
mov cl, byte [esi + 0x36]
and cl, 7
cmp cl, 2
jne 0x54cc7b
cmp dword [esi + 0x594], 6
jne 0x54cc7b
fld dword [esp + 0x18]
fadd st(0), st(0)
fstp dword [esp + 0x18]
mov edx, dword [esp + 0x18]
push ebp
push edx
jmp 0x54cce3
fld dword [0x8cd7a8]
mov eax, dword [esp + 0x14]
fmul dword [esp + 0x18]
push 0x3f800000
push ebp
push edi
fmul dword [esp + 0x20]
push eax
mov ecx, esi
fstp dword [esp + 0x28]
call fcn.005428c0
mov ecx, dword [esp + 0x18]
push ebp
push ecx
jmp 0x54cce3
lea edx, [esp + 0x14]
push edx
push ebp
push edi
mov ecx, esi
call fcn.00543890
test al, al
je 0x54ccf2
cmp byte [ebp + 0x20], 0x3c
jne 0x54ccce
cmp byte [ebp + 0x23], 0x3c
je 0x54ccf2
push ebp
mov ecx, 0xb79538
call fcn.0055eb50
fstp dword [esp + 0x24]
mov eax, dword [esp + 0x24]
push ebp
push eax
mov ecx, esi
call fcn.005454c0
test al, al
je 0x54ccf2
or dword [esi + 0x1c], 8
mov eax, dword [esp + 0x30]
add ebp, 0x2c
dec eax
mov dword [esp + 0x30], eax
jne 0x54ca94
mov al, byte [esp + 0x23]
test al, al
jbe 0x54cf8d
movzx ecx, al
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
fdivr dword [0x858624]
fld st(0)
fld dword [esp + 0x50]
fmul st(1)
fld st(1)
fmul dword [esp + 0x54]
fstp dword [esp + 0xec]
fxch st(1)
fmul dword [esp + 0x58]
fstp dword [esp + 0xf0]
fadd dword [esi + 0x44]
fstp dword [esi + 0x44]
fld dword [esp + 0xec]
fadd dword [esi + 0x48]
fstp dword [esi + 0x48]
fld dword [esp + 0xf0]
fadd dword [esi + 0x4c]
fstp dword [esi + 0x4c]
fld dword [esp + 0x44]
fmul st(1)
fld st(1)
fmul dword [esp + 0x48]
fstp dword [esp + 0x104]
fxch st(1)
fmul dword [esp + 0x4c]
fstp dword [esp + 0x108]
fadd dword [esi + 0x50]
fstp dword [esi + 0x50]
fld dword [esp + 0x104]
fadd dword [esi + 0x54]
fstp dword [esi + 0x54]
fld dword [esp + 0x108]
fadd dword [esi + 0x58]
fstp dword [esi + 0x58]
mov al, byte [0xb7cd72]
test al, al
jne 0x54cea6
mov al, byte [esi + 0x36]
test al, 0xf8
jne 0x54cea6
and al, 7
cmp al, 2
jne 0x54cea6
fld dword [esi + 0x44]
fcomp dword [0x858b50]
fld dword [esi + 0x44]
fnstsw ax
test ah, 5
jp 0x54cdda
fchs
fcomp dword [0x858cc4]
fnstsw ax
test ah, 0x41
jne 0x54cea6
fld dword [esi + 0x48]
fcomp dword [0x858b50]
fld dword [esi + 0x48]
fnstsw ax
test ah, 5
jp 0x54ce00
fchs
fcomp dword [0x858cc4]
fnstsw ax
test ah, 0x41
jne 0x54cea6
mov eax, dword [esi + 0x40]
test ah, 1
jne 0x54cea6
fild dword [esp + 0x38]
lea eax, [esp + 0xf4]
lea ecx, [esp + 0x130]
fstp dword [esp + 0x24]
fld dword [esp + 0x50]
mov edx, dword [esp + 0x24]
fmul dword [0x858c24]
push edx
push eax
push ecx
fdiv dword [esp + 0x30]
fsubr dword [esi + 0x5c]
fstp dword [esi + 0x5c]
fld dword [esp + 0x60]
fmul dword [0x858c24]
fdiv dword [esp + 0x30]
fsubr dword [esi + 0x60]
fstp dword [esi + 0x60]
fld dword [esp + 0x50]
fmul dword [0x858ee4]
fstp dword [esp + 0x100]
fld dword [esp + 0x54]
fmul dword [0x858ee4]
fstp dword [esp + 0x104]
fld dword [esp + 0x58]
fmul dword [0x858ee4]
fstp dword [esp + 0x108]
call fcn.004119d0
add esp, 0xc
push eax
lea ecx, [esi + 0x68]
call fcn.00411a00
mov dl, byte [edi + 0x36]
and dl, 7
cmp dl, 4
jne 0x54cee5
mov al, byte [edi + 0x144]
test al, al
je 0x54cee5
fld dword [esp + 0x40]
fcomp dword [0x858ba4]
fnstsw ax
test ah, 0x41
jne 0x54cee5
mov eax, dword [esp + 0x40]
push 0x37
push esi
push 0xb73720
push 0xb73710
push eax
mov ecx, edi
call fcn.005a0d90
mov al, byte [0xb7cd6c]
test al, al
je 0x54c944
mov byte [esp + 0x2b], 1
jmp 0x54cf8d
mov cx, word [0xb7cd78]
mov word [edi + 0x2c], cx
mov al, byte [esp + 0x12]
test al, al
jne 0x54cf8d
mov edx, dword [esi]
push 0xb73710
push edi
mov ecx, esi
call dword [edx + 0x58]
test byte [esi + 0x42], 1
je 0x54cf32
mov cl, byte [esp + 0x29]
test cl, cl
jne 0x54cf32
cmp eax, ebx
jg 0x54c944
cmp eax, ebx
jne 0x54cf8d
cmp dword [esi + 0x128], edi
jne 0x54cf8d
push 0xffffffffffffffff
call fcn.0056e210
add esp, 4
cmp esi, eax
jne 0x54cf8d
mov dword [esi + 0x128], ebx
jmp 0x54cf8d
cmp dword [esi + 0x128], edi
jne 0x54cf6a
cmp dword [esi + 0xfc], edi
je 0x54cf6a
mov dword [esi + 0x128], ebx
mov al, byte [edi + 0x36]
and al, 7
cmp al, 1
jbe 0x54cf8d
cmp al, 5
jae 0x54cf8d
cmp dword [edi + 0x128], esi
jne 0x54cf8d
cmp dword [edi + 0xfc], esi
je 0x54cf8d
mov dword [edi + 0x128], ebx
mov eax, dword [esp + 0xe4]
xor ebx, ebx
cmp eax, ebx
jne 0x54bb91
mov ecx, dword [esp + 0xe0]
mov ebp, dword [esp + 0xa8]
mov edx, dword [esp + 0x3c]
add edx, 4
cmp ebp, ebx
mov dword [esp + 0x3c], edx
jne 0x54bb50
mov al, byte [esp + 0x2b]
mov ecx, dword [esp + 0x1e4]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1e0
ret 8