Function at 0x4a3720
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14c
mov eax, dword [0x53a090]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, ecx
push edi
cmp dword [esi + 0x740], 0
mov edi, dword [ebp + 8]
mov dword [ebp - 0x9c], esi
mov dword [ebp - 0x100], edi
mov dword [ebp - 0xf8], ebx
je 0x4a45e4
call fcn.0049e320
mov ecx, esi
call fcn.0049e600
push edi
mov ecx, esi
call fcn.004a91f0
mov eax, dword [esi]
lea ecx, [ebp - 0xb4]
push ecx
mov ecx, esi
call dword [eax + 0x2c]
mov eax, dword [esi]
lea ecx, [ebp - 0xf0]
push ecx
mov ecx, esi
call dword [eax + 0x28]
fld dword [ebp - 0xec]
fchs
fstp dword [ebp - 0xdc]
fld dword [ebp - 0xdc]
fld st(0)
fadd dword [ebp - 0xb0]
fstp dword [ebp - 0xb0]
fadd dword [ebp - 0xa8]
fstp dword [ebp - 0xa8]
fldz
fst dword [ebp - 0xb4]
fild dword [esi + 0x740]
fstp dword [ebp - 0xac]
fcom dword [ebx + 8]
fnstsw ax
test ah, 5
jp 0x4a45e2
fld dword [ebx]
fld dword [ebp - 0xac]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4a45e2
fld dword [ebx + 0xc]
fld dword [ebp - 0xb0]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x4a45e0
fld dword [ebx + 4]
fld dword [ebp - 0xa8]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x4a45de
cmp byte [esi + 0x80d], 0
je 0x4a3831
mov edi, dword [esi + 0x848]
fld dword [ebx + 0xc]
mov dword [ebp - 0x80], edi
fcompp
fnstsw ax
test ah, 5
jp 0x4a3849
fld dword [ebx + 0xc]
fstp dword [ebp - 0xa8]
fld dword [ebx + 4]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4a385e
fld dword [ebx + 4]
fstp dword [ebp - 0xb0]
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0xa8]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0xbc], eax
fstp dword [ebp - 0xbc]
mov dword [ebp - 0xb8], edx
fld dword [ebp - 0xb8]
fld dword [ebx + 0xc]
mov dword [ebp - 0xc8], edx
fcompp
fnstsw ax
test ah, 0x41
jne 0x4a38c1
fld dword [ebx + 0xc]
fstp dword [ebp - 0xb8]
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0xc8], eax
xor ecx, ecx
mov dword [ebp - 0xdc], ecx
jmp 0x4a38d3
mov edi, dword [ebp - 0x80]
lea eax, [ecx + ecx*4]
mov eax, dword [esi + eax*4 + 0x6e0]
mov dword [ebp - 0x8c], eax
test eax, eax
jle 0x4a44f5
fld dword [ebp - 0xbc]
lea ebx, [ecx + ecx*4]
fst dword [ebp - 0xc4]
mov dword [ebp - 0x78], ebx
fild dword [ebp - 0x8c]
fstp dword [ebp - 0x8c]
fadd dword [ebp - 0x8c]
mov eax, dword [esi + ebx*4 + 0x6dc]
fstp dword [ebp - 0xbc]
cmp eax, 1
je 0x4a39aa
test dword [esi + ebx*4 + 0x6e4], 0xfe000000
je 0x4a3981
fld dword [ebp - 0xec]
call fcn.0052af70
test al, 1
je 0x4a3949
mov eax, dword [esi + 0x84c]
jmp 0x4a394f
mov eax, dword [esi + 0x850]
mov ecx, dword [ebp - 0xc4]
mov edx, dword [edi]
push eax
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [ebp - 0xe8]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0xbc]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0xc8]
mov dword [eax + 0xc], ecx
mov ecx, edi
call dword [edx + 0x34]
jmp 0x4a39e2
sub eax, 2
je 0x4a399e
dec eax
mov eax, dword [esi + 0x34]
je 0x4a3995
mov eax, dword [eax + 0x978]
push eax
jmp 0x4a39b3
mov eax, dword [eax + 0x92c]
push eax
jmp 0x4a39b3
mov eax, dword [esi + 0x34]
mov eax, dword [eax + 0x930]
push eax
jmp 0x4a39b3
mov eax, dword [esi + 0x34]
push dword [eax + 0x978]
mov ecx, dword [ebp - 0xc4]
mov edx, dword [edi]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [ebp - 0xe8]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0xbc]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0xc8]
mov dword [eax + 0xc], ecx
mov ecx, edi
call dword [edx + 0x38]
mov esi, dword [esi + 0x64c]
fld dword [ebp - 0xb0]
fadd dword [ebp - 0xec]
mov dword [ebp - 0x8c], esi
fild dword [ebp - 0x8c]
fstp dword [ebp - 0x8c]
fdiv dword [ebp - 0x8c]
call fcn.0052af70
mov ecx, dword [ebp - 0x9c]
mov edx, eax
call fcn.0049e740
imul esi, edx
mov dword [ebp - 0x8c], esi
add eax, edx
fild dword [ebp - 0x8c]
mov dword [ebp - 0xa0], eax
fstp dword [ebp - 0x8c]
fld dword [ebp - 0x8c]
fsub dword [ebp - 0xec]
call fcn.0052af70
mov esi, dword [ebp - 0x9c]
mov dword [ebp - 0xe0], eax
test dword [esi + ebx*4 + 0x6e4], 0xfe000000
mov byte [ebp - 0x72], 0
je 0x4a3b7a
mov edi, dword [esi + 0xc30]
push dword [ebp - 0xa0]
lea eax, [esi + 0xc00]
mov esi, dword [edi + 4]
add edi, 4
mov ecx, eax
mov dword [ebp - 0x8c], eax
call fcn.004d3ad0
push eax
push edi
call dword [esi + 0x1c]
mov ebx, eax
test ebx, 0x1000
je 0x4a3af6
push dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x8c]
call fcn.004d3ad0
mov esi, eax
mov eax, ebx
test esi, esi
jle 0x4a3adc
mov edi, dword [ebp - 0x9c]
test eax, 0x1000
je 0x4a3adc
mov eax, dword [edi + 0xc30]
add eax, 4
dec esi
mov ecx, dword [eax]
push esi
push eax
call dword [ecx + 0x1c]
test esi, esi
jg 0x4a3ac0
test eax, 0x2000
jne 0x4a3af6
and eax, 0xfff
and ebx, 0xfff
cmp ebx, eax
jge 0x4a3af6
mov byte [ebp - 0x72], 1
mov esi, dword [ebp - 0x9c]
cmp byte [esi + 0x804], 0
je 0x4a3b7a
mov eax, dword [esi]
lea ecx, [ebp - 0x138]
push ecx
mov ecx, esi
call dword [eax + 0x2c]
fld dword [ebp - 0x12c]
fsub dword [ebp - 0x134]
call fcn.0052af70
cdq
idiv dword [esi + 0x64c]
lea ecx, [esi + 0xc00]
add eax, dword [esi + 0xb30]
push eax
call fcn.004d3ad0
mov edx, dword [esi + 0xbc8]
mov ecx, dword [esi + 0xba0]
add edx, edx
inc eax
mov edx, dword [ecx + edx*8]
mov ecx, dword [esi + 0xc30]
push eax
mov eax, dword [ecx + 4]
add ecx, 4
push edx
push ecx
add esi, 0x7f4
call dword [eax + 0x14]
push eax
push esi
mov esi, dword [ebp - 0x9c]
mov ecx, dword [esi + 0xc30]
call fcn.004bebf0
push 0x1f
push 0x1a
mov ecx, esi
call fcn.004a3350
push 0x1e
push 0x19
mov dword [ebp - 0xfc], eax
call fcn.004a3350
mov ecx, dword [ebp - 0xa0]
lea edi, [esi + 0xc00]
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0x104], edi
lea esp, [esp]
mov ebx, dword [edi + 4]
test ebx, ebx
jne 0x4a3bbc
mov eax, dword [edi + 0x14]
jmp 0x4a3c05
mov edi, dword [edi + 0x10]
mov eax, dword [edi + 8]
mov edx, dword [eax + 8]
sub edx, 2
js 0x4a3bf7
cmp edx, dword [eax + 8]
jge 0x4a3bf7
cmp edx, dword [eax + 0xc]
jge 0x4a3bdb
mov eax, dword [eax]
mov eax, dword [eax + edx*4]
jmp 0x4a3bee
cmp edx, dword [eax + 8]
jl 0x4a3be4
xor eax, eax
jmp 0x4a3bee
mov ecx, dword [eax + 0x10]
mov eax, dword [eax]
add ecx, edx
mov eax, dword [eax + ecx*4]
cmp edx, dword [edi]
jle 0x4a3bf9
add eax, dword [edi + 4]
jmp 0x4a3bf9
xor eax, eax
mov ecx, dword [ebp - 0xa0]
lea edi, [esi + 0xc00]
cmp ecx, eax
jge 0x4a44ef
fild dword [ebp - 0xe0]
mov eax, dword [ebp - 0xf8]
fstp dword [ebp - 0x8c]
fld dword [ebp - 0x8c]
fstp dword [ebp - 0x8c]
fld dword [ebp - 0x8c]
fld dword [eax + 0xc]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4a44ef
test ebx, ebx
jne 0x4a3c49
mov edi, ecx
jmp 0x4a3c77
test ecx, ecx
jg 0x4a3c51
xor edi, edi
jmp 0x4a3c77
mov ecx, edi
call fcn.004d3a10
mov ecx, dword [ebp - 0xa0]
cmp ecx, eax
jle 0x4a3c6c
mov ecx, edi
call fcn.004d3a10
push eax
jmp 0x4a3c6d
push ecx
mov ecx, dword [edi + 0x10]
call fcn.004c61e0
mov edi, eax
push edi
lea ecx, [esi + 0xc00]
call fcn.004d3a60
cmp dword [ebp - 0xa0], eax
lea eax, [edi + 1]
push eax
lea ecx, [esi + 0xc00]
sete byte [ebp - 0x71]
call fcn.004d3a60
dec eax
cmp dword [ebp - 0xa0], eax
mov eax, dword [esi + 0xc30]
sete byte [ebp - 0xa1]
mov ecx, dword [eax + 0x19c]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x4a3d02
test edi, edi
js 0x4a3d02
cmp edi, eax
jge 0x4a3d02
mov ebx, dword [ecx + 0x10]
mov edx, dword [ecx + 4]
cmp edi, ebx
jge 0x4a3cd4
lea eax, [edx + edi*4]
jmp 0x4a3cdc
mov eax, dword [ecx + 0x14]
add eax, edi
lea eax, [edx + eax*4]
cmp dword [eax], 0
je 0x4a3d02
cmp edi, ebx
jge 0x4a3cf1
lea ecx, [edx + edi*4]
mov ecx, dword [ecx]
call fcn.004d4d60
jmp 0x4a3d04
mov eax, dword [ecx + 0x14]
add eax, edi
lea ecx, [edx + eax*4]
mov ecx, dword [ecx]
call fcn.004d4d60
jmp 0x4a3d04
xor eax, eax
mov cl, byte [ebp - 0x71]
movzx ebx, cl
neg ebx
sbb ebx, ebx
and ebx, eax
mov eax, dword [ebp - 0x78]
mov byte [ebp - 0x79], 0
test dword [esi + eax*4 + 0x6e4], 0xfe000000
je 0x4a3f6b
mov eax, dword [esi + 0xc30]
add eax, 4
push edi
mov ecx, dword [eax]
push eax
call dword [ecx + 0x1c]
mov ecx, dword [esi + 0xc30]
mov dword [ebp - 0x84], eax
mov edx, dword [ecx + 4]
add ecx, 4
lea eax, [edi + 1]
push eax
push ecx
call dword [edx + 0x1c]
mov edx, eax
mov eax, dword [ebp - 0x84]
mov ecx, edx
and eax, 0xfff
and ecx, 0xfff
test dword [ebp - 0x84], 0x2000
mov dword [ebp - 0xe4], eax
je 0x4a3ee0
cmp byte [ebp - 0x71], 0
je 0x4a3de1
cmp eax, ecx
jge 0x4a3e01
push edi
lea ecx, [esi + 0xc00]
call fcn.004d4010
test al, al
je 0x4a3dbc
cmp dword [ebp - 0xe4], 0x400
jne 0x4a3dab
or ebx, 0x80000000
jmp 0x4a3e0e
mov ecx, dword [ebp - 0xfc]
mov eax, 1
shl eax, cl
or ebx, eax
jmp 0x4a3e0e
cmp dword [ebp - 0xe4], 0x400
jne 0x4a3dd0
or ebx, 0x40000000
jmp 0x4a3e0e
mov ecx, dword [ebp - 0xf4]
mov eax, 1
shl eax, cl
or ebx, eax
jmp 0x4a3e0e
cmp eax, ecx
jge 0x4a3e01
push edi
lea ecx, [esi + 0xc00]
call fcn.004d4010
test al, al
jne 0x4a3e08
cmp dword [ebp - 0xe4], 0x400
jmp 0x4a3e06
cmp eax, 0x400
jle 0x4a3e0e
or ebx, 0x20000000
lea eax, [edi + 1]
push eax
lea ecx, [esi + 0xc00]
mov byte [ebp - 0x72], 0
call fcn.004d3a60
push eax
lea ecx, [esi + 0xc00]
call fcn.004d3ad0
mov ecx, dword [esi + 0xc30]
add ecx, 4
push eax
mov edx, dword [ecx]
push ecx
mov dword [ebp - 0x84], eax
call dword [edx + 0x1c]
mov edx, dword [esi + 0xc30]
mov ecx, dword [ebp - 0x84]
mov esi, dword [edx + 4]
add edx, 4
inc ecx
push ecx
push edx
mov dword [ebp - 0x94], eax
call dword [esi + 0x1c]
mov ecx, dword [ebp - 0x104]
mov esi, eax
push edi
and esi, 0xfff
call fcn.004d4010
test al, al
jne 0x4a3f5f
test dword [ebp - 0x94], 0x1000
je 0x4a3e95
cmp dword [ebp - 0xe4], esi
jle 0x4a3e95
mov byte [ebp - 0x72], 1
mov esi, dword [ebp - 0x9c]
cmp byte [esi + 0x804], 0
je 0x4a3f65
mov eax, dword [esi + 0x7f4]
cmp eax, 0xffffffff
je 0x4a3f65
mov ecx, dword [ebp - 0x84]
cmp eax, ecx
jg 0x4a3f65
cmp ecx, dword [esi + 0x7f8]
mov eax, dword [ebp - 0x78]
mov cl, byte [ebp - 0x71]
jg 0x4a3f6b
mov byte [ebp - 0x79], 1
jmp 0x4a3f6b
test dword [ebp - 0x84], 0x1000
je 0x4a3f31
cmp byte [ebp - 0x72], 0
je 0x4a3f1c
test edx, 0x1000
je 0x4a3f02
or ebx, 0x20000000
jmp 0x4a3f65
mov byte [ebp - 0x72], 0
mov eax, dword [ebp - 0x78]
cmp ecx, 0x400
mov cl, byte [ebp - 0x71]
jle 0x4a3f29
or ebx, 0x8000000
jmp 0x4a3f6b
cmp eax, 0x400
jle 0x4a3f65
cmp ecx, eax
jge 0x4a3efa
jmp 0x4a3f06
or ebx, 0x10000000
jmp 0x4a3f6b
cmp eax, 0x400
jle 0x4a3f65
cmp ecx, eax
jge 0x4a3efa
mov byte [ebp - 0x72], 0
test edx, 0x1000
je 0x4a3f54
or ebx, 0x20000000
mov byte [ebp - 0x72], 1
jmp 0x4a3f65
cmp byte [ebp - 0xa1], 0
je 0x4a3efa
jmp 0x4a3f06
mov esi, dword [ebp - 0x9c]
mov cl, byte [ebp - 0x71]
mov eax, dword [ebp - 0x78]
and ebx, dword [esi + eax*4 + 0x6e4]
fld dword [ebp - 0x8c]
mov eax, dword [ebp - 0xe8]
mov edx, dword [ebp - 0xc4]
mov dword [ebp - 0xd4], eax
fstp dword [ebp - 0xd4]
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xcc], eax
mov eax, dword [esi + 0x64c]
add eax, dword [ebp - 0xe0]
mov dword [ebp - 0xd8], edx
mov dword [ebp - 0x94], eax
fild dword [ebp - 0x94]
mov eax, dword [ebp - 0x78]
mov eax, dword [esi + eax*4 + 0x6dc]
fstp dword [ebp - 0xcc]
cmp eax, 1
jne 0x4a4222
test cl, cl
je 0x4a4193
mov al, byte [0x408071]
push 0x63
mov byte [ebp - 0x70], al
lea eax, [ebp - 0x6f]
push 0
push eax
call fcn.00518020
add esp, 0xc
test edi, edi
js 0x4a4018
lea eax, [edi + 1]
push eax
lea eax, [ebp - 0x70]
push 0x408af8
push eax
call fcn.00510caa
add esp, 0xc
test byte [esi + 0xbf8], 0x40
je 0x4a406f
mov eax, dword [esi + 0xc30]
add eax, 4
push edi
mov ecx, dword [eax]
push eax
call dword [ecx + 0x1c]
mov ecx, eax
sar ecx, 0x10
push ecx
mov ecx, eax
and ecx, 0xfff
push ecx
mov ecx, eax
shr ecx, 9
not cl
and eax, 0x2000
and ecx, 8
or ecx, 0x57
neg eax
sbb eax, eax
and eax, 0xffffffe9
push ecx
add eax, 0x5f
push eax
lea eax, [ebp - 0x70]
push 0x43d1fc
push eax
call fcn.00510caa
add esp, 0x18
mov ecx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x148], ecx
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x144], eax
mov eax, dword [ebp - 0xcc]
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x84], eax
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a40a0
mov eax, dword [esi + 0x34]
sub ecx, edx
mov edx, dword [ebp - 0x80]
push ecx
mov edx, dword [edx]
lea ecx, [ebp - 0x70]
push ecx
mov ecx, dword [ebp - 0x80]
add eax, 0x988
push eax
mov eax, dword [edx + 0x60]
call eax
fstp dword [ebp - 0x94]
fld dword [ebp - 0xd0]
lea ecx, [ebp - 0x70]
fsub dword [ebp - 0x94]
fild dword [esi + 0x7b4]
lea edx, [ecx + 1]
fstp dword [ebp - 0x94]
fsub dword [ebp - 0x94]
fstp dword [ebp - 0x148]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a40f4
mov eax, dword [ebp - 0x80]
fild dword [esi + 0x650]
sub ecx, edx
mov edx, dword [eax]
mov dword [ebp - 0x94], ecx
mov ecx, dword [esi + 0x34]
lea eax, [ebp - 0x70]
push dword [ecx + 0x978]
push dword [ecx + 0x974]
push dword [ebp - 0x94]
push eax
mov eax, dword [esi + 0x650]
test eax, eax
jns 0x4a4137
fadd dword [0x43fce8]
fstp dword [ebp - 0x94]
push ecx
fld dword [ebp - 0x94]
lea eax, [ecx + 0x988]
fadd dword [ebp - 0x144]
fstp dword [ebp - 0x94]
fld dword [ebp - 0x94]
fstp dword [esp]
push eax
mov eax, dword [ebp - 0x148]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], eax
mov eax, dword [ebp - 0x8c]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0xbc]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x84]
mov dword [ecx + 0xc], eax
mov ecx, dword [ebp - 0x80]
call dword [edx + 0x50]
jmp 0x4a43ac
test byte [esi + 0x7c4], 4
je 0x4a43ac
mov eax, dword [ebp - 0xbc]
fld dword [ebp - 0xd0]
fsub qword [0x43fc80]
mov esi, dword [ebp - 0xcc]
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x9c]
fstp dword [ebp - 0x120]
mov dword [ebp - 0x128], edx
mov eax, dword [eax + 0x34]
fld dword [ebp - 0x120]
mov edx, dword [ebp - 0xd4]
push dword [eax + 0x974]
fsub dword [eax + 0x968]
push 0
sub esp, 0x10
fstp dword [ebp - 0x128]
mov eax, dword [ebp - 0x128]
mov ecx, esp
push dword [ebp - 0x80]
mov dword [ecx], eax
mov eax, dword [ebp - 0x120]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], esi
call fcn.004a5c00
mov esi, dword [ebp - 0x9c]
jmp 0x4a43ac
cmp eax, 4
je 0x4a4230
cmp eax, 5
jne 0x4a43ac
test cl, cl
je 0x4a43ac
mov ecx, dword [esi + 0xc30]
push edi
lea eax, [ebp - 0x118]
push eax
call fcn.004c2970
cmp dword [ebp - 0x114], 0
je 0x4a43ac
lea edx, [ebp - 0x118]
push edx
mov edx, dword [esi + 0x794]
lea ecx, [esi + 0x20]
call fcn.004a3370
add esp, 4
test al, al
je 0x4a43ac
cmp byte [ebp - 0x110], 0
je 0x4a428c
mov eax, dword [ebp - 0x108]
movzx eax, byte [eax]
jmp 0x4a4292
mov eax, dword [ebp - 0x10c]
add eax, dword [esi + 0x794]
mov edx, dword [ebp - 0x80]
mov edx, dword [edx]
lea ecx, [eax + eax*8]
mov eax, dword [esi + 0x34]
push dword [eax + ecx*8 + 0x30]
mov eax, dword [ebp - 0xc4]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], eax
mov eax, dword [ebp - 0xd4]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0xbc]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0xcc]
mov dword [ecx + 0xc], eax
mov ecx, dword [ebp - 0x80]
call dword [edx + 0x38]
mov eax, dword [ebp - 0x78]
cmp dword [esi + eax*4 + 0x6dc], 5
jne 0x4a4333
fld dword [ebp - 0xd0]
mov ecx, dword [ebp - 0x80]
lea eax, [ebp - 0x118]
fstp qword [ebp - 0x90]
push eax
push dword [esi + 0x794]
lea edx, [esi + 0x20]
call fcn.004a3490
mov dword [ebp - 0x94], eax
fild dword [ebp - 0x94]
add esp, 8
fstp dword [ebp - 0x94]
fld dword [ebp - 0x94]
fsubr qword [ebp - 0x90]
fsub qword [0x43fc80]
fstp dword [ebp - 0xd8]
push dword [ebp - 0x118]
fild dword [esi + 0x650]
lea eax, [ebp - 0x118]
push 0
push eax
mov eax, dword [esi + 0x650]
test eax, eax
jns 0x4a4358
fadd dword [0x43fce8]
fstp dword [ebp - 0x94]
fld dword [ebp - 0x94]
fadd dword [ebp - 0xd4]
call fcn.0052af70
push eax
mov eax, dword [ebp - 0xd8]
sub esp, 0x10
mov ecx, esp
push dword [esi + 0x794]
mov dword [ecx], eax
mov eax, dword [ebp - 0xd4]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0xd0]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0xcc]
mov dword [ecx + 0xc], eax
mov ecx, dword [ebp - 0x80]
lea edx, [esi + 0x20]
call fcn.004a3550
add esp, 0x24
test ebx, ebx
je 0x4a4466
xor eax, eax
lea ecx, [esi + 0x44]
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x84], ecx
test ebx, ebx
je 0x4a4466
test bl, 1
je 0x4a444b
mov edx, dword [ebp - 0x78]
xor eax, eax
test dword [esi + edx*4 + 0x6e4], 0xfe000000
je 0x4a4419
cmp byte [esi + 0x804], al
je 0x4a4419
mov ecx, dword [esi + 0x7f4]
cmp ecx, 0xffffffff
je 0x4a4419
cmp ecx, edi
jg 0x4a4419
mov edx, dword [esi + 0x7f8]
cmp edi, edx
jg 0x4a4416
cmp ecx, edi
jge 0x4a4492
cmp edi, edx
jge 0x4a4490
mov eax, 2
mov edx, dword [ebp - 0x78]
push dword [esi + edx*4 + 0x6dc]
mov ecx, dword [ebp - 0x84]
push eax
mov eax, dword [esi + 0x34]
add eax, 0x988
push eax
lea eax, [ebp - 0xd8]
push eax
push dword [ebp - 0x80]
call fcn.004d2060
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x84]
inc eax
add ecx, 0x1c
sar ebx, 1
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x84], ecx
cmp eax, 0x20
jl 0x4a43c5
mov ecx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0xe0]
inc ecx
add eax, dword [esi + 0x64c]
mov dword [ebp - 0xa0], ecx
mov dword [ebp - 0xe0], eax
lea edi, [esi + 0xc00]
jmp 0x4a3bb0
cmp ecx, edi
jne 0x4a44d2
cmp edi, edx
jge 0x4a44d2
cmp byte [ebp - 0x71], al
je 0x4a44ae
movzx eax, byte [ebp - 0x79]
neg eax
sbb eax, eax
and eax, 3
inc eax
jmp 0x4a4416
push edi
lea ecx, [esi + 0xc00]
call fcn.004d4010
test al, al
jne 0x4a4411
cmp byte [ebp - 0x79], al
jne 0x4a4411
xor eax, eax
jmp 0x4a4416
cmp ecx, edi
jge 0x4a4416
cmp edi, edx
mov edx, dword [ebp - 0x78]
jne 0x4a4419
mov eax, 3
jmp 0x4a4419
mov ecx, dword [ebp - 0xdc]
inc ecx
mov dword [ebp - 0xdc], ecx
cmp ecx, 4
jle 0x4a38d0
mov eax, dword [ebp - 0xb4]
fld dword [ebp - 0xbc]
mov edi, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0xac]
mov ebx, dword [ebp - 0xa8]
mov dword [ebp - 0x138], eax
fstp dword [ebp - 0x138]
mov eax, dword [ebp - 0x80]
mov esi, dword [eax]
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax + 0x34]
push dword [eax + 0x930]
mov eax, dword [ebp - 0x138]
sub esp, 0x10
mov edx, esp
mov dword [edx], eax
mov dword [edx + 4], edi
mov dword [edx + 8], ecx
mov ecx, dword [ebp - 0x80]
mov dword [edx + 0xc], ebx
call dword [esi + 0x38]
mov eax, dword [ebp - 0x9c]
cmp byte [eax + 0x80d], 0
je 0x4a45e4
push dword [eax + 0x848]
fld dword [ebp - 0xb4]
mov eax, dword [ebp - 0xb4]
fstp dword [ebp - 0x98]
fld dword [ebp - 0xb0]
mov ecx, dword [ebp - 0x100]
fstp dword [ebp - 0x94]
push dword [ebp - 0x94]
mov esi, dword [ecx]
push dword [ebp - 0x98]
sub esp, 0x10
mov edx, esp
mov dword [edx], eax
mov eax, dword [ebp - 0xb0]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0xac]
mov dword [edx + 8], eax
mov eax, dword [ebp - 0xa8]
mov dword [edx + 0xc], eax
call dword [esi + 0x4c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0050ecf7
mov esp, ebp
pop ebp
ret 8
fstp st(1)
fstp st(0)
fstp st(0)
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0050ecf7
mov esp, ebp
pop ebp
ret 8