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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa4
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
test edi, edi
jle 0x4aa626
mov ecx, dword [ebp + 0x14]
test ecx, ecx
jle 0x4aa626
mov dx, word [ebp + 0x18]
mov esi, dword [ebp + 8]
cmp dx, 2
je 0x4aa60d
mov ax, word [esi + 0xc]
cmp ax, 4
je 0x4aa60d
cmp ax, 1
je 0x4aa60d
test dx, dx
jne 0x4aa61c
push ecx
mov cx, word [esi + 0x10]
push edi
push ecx
lea edx, [esp + 0x94]
push eax
push edx
call fcn.00404d20
add esp, 0x14
test ax, ax
jne 0x4aa04f
mov ax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ax, word [esi + 0x12]
mov cx, word [esi + 0x1c]
mov dx, word [esi + 0x1e]
xor ebx, ebx
mov bx, word [esi + 0xe]
mov word [esp + 0x9a], ax
mov eax, dword [esi + 0x14]
mov word [esp + 0xa4], cx
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x9c], eax
lea eax, [ebx*8]
add edi, 0xa
push eax
push edi
mov word [esp + 0xae], dx
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x8c], ebx
call fcn.004b26c8
mov ecx, eax
xor edx, edx
add esp, 8
cmp ecx, edx
mov dword [esp + 0x20], ecx
jne 0x4aa0cf
lea edx, [esp + 0x88]
push edx
call fcn.00404e40
add esp, 4
mov ax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
fild dword [esi]
mov edi, dword [esi + 0x24]
mov dword [esp + 0x3c], edi
fidiv dword [ebp + 0x10]
fstp qword [esp + 0x78]
fild dword [esi + 4]
fidiv dword [ebp + 0x14]
fstp qword [esp + 0x70]
fld qword [esp + 0x78]
fcomp qword [0x4dd198]
fld qword [esp + 0x70]
fnstsw ax
fcomp qword [0x4dd198]
test ah, 1
fnstsw ax
je 0x4aa11b
test ah, 1
je 0x4aa111
mov dword [esp + 0x34], edx
jmp 0x4aa130
mov dword [esp + 0x34], 1
jmp 0x4aa130
test ah, 1
mov dword [esp + 0x34], 2
jne 0x4aa130
mov dword [esp + 0x34], 3
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x1c], edx
fld qword [0x4dd048]
cmp eax, edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
jle 0x4aa5e5
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x5c], edi
fld qword [esp + 0x68]
fadd qword [esp + 0x70]
lea ecx, [eax + 1]
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
fadd qword [0x4efb20]
fld st(1)
fcompp
fnstsw ax
test ah, 0x41
je 0x4aa1a1
fst qword [esp + 0x68]
fsub st(1)
fild dword [esp + 0x1c]
mov dword [esp + 0x30], 1
fsubr qword [esp + 0x68]
fstp qword [esp + 0x50]
jmp 0x4aa1c5
fstp st(0)
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x50], 0
fild dword [esp + 0x1c]
mov dword [esp + 0x54], 0x3ff00000
mov dword [esp + 0x30], 0
fsub st(1)
mov ecx, dword [esp + 0x1c]
mov eax, dword [esi + 4]
fxch st(1)
fadd st(1)
fxch st(1)
inc ecx
cmp ecx, eax
jne 0x4aa1dd
mov dword [esp + 0x14], edi
jmp 0x4aa1e6
mov eax, dword [esi + 8]
add eax, edi
mov dword [esp + 0x14], eax
mov edx, dword [ebp + 0x10]
mov ecx, dword [esp + 0x20]
fld qword [0x4dd048]
xor eax, eax
mov dword [esp + 0x38], ecx
cmp edx, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
jle 0x4aa4fa
jmp 0x4aa216
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x24]
fld qword [esp + 0x60]
fadd qword [esp + 0x78]
inc edx
mov dword [esp + 0x28], edx
fild dword [esp + 0x28]
fadd qword [0x4efb20]
fld st(1)
fcompp
fnstsw ax
test ah, 0x41
je 0x4aa258
fst qword [esp + 0x60]
fsub st(1)
fild dword [esp + 0x24]
mov dword [esp + 0x28], 1
fsubr qword [esp + 0x60]
fstp qword [esp + 0x48]
jmp 0x4aa27c
fstp st(0)
mov dword [esp + 0x24], edx
mov dword [esp + 0x48], 0
fild dword [esp + 0x24]
mov dword [esp + 0x4c], 0x3ff00000
mov dword [esp + 0x28], 0
fsub st(1)
mov eax, dword [esp + 0x24]
mov edx, dword [esi]
fxch st(1)
fadd st(1)
fxch st(1)
fmul st(2)
inc eax
cmp eax, edx
fstp qword [esp + 0x40]
jne 0x4aa29b
mov edx, dword [esp + 0x14]
mov eax, edi
jmp 0x4aa2a4
mov edx, dword [esp + 0x14]
lea eax, [edi + ebx]
add edx, ebx
mov esi, dword [esp + 0x34]
sub esi, 0
je 0x4aa3ab
dec esi
je 0x4aa34e
dec esi
je 0x4aa2eb
xor eax, eax
test ebx, ebx
jle 0x4aa44e
mov esi, ecx
xor edx, edx
add esi, 8
mov dl, byte [eax + edi]
inc eax
mov dword [esp + 0x10], edx
cmp eax, ebx
fild dword [esp + 0x10]
fmul qword [esp + 0x40]
fadd qword [esi - 8]
fstp qword [esi - 8]
jl 0x4aa2c7
jmp 0x4aa44e
test ebx, ebx
jle 0x4aa44e
mov eax, dword [esp + 0x14]
mov edx, ecx
fld qword [0x4dd198]
fsub qword [esp + 0x50]
mov esi, edi
mov ecx, eax
sub esi, ecx
mov dword [esp + 0x10], ebx
xor ecx, ecx
add edx, 8
mov cl, byte [esi + eax]
mov dword [esp + 0xc], ecx
xor ecx, ecx
fild dword [esp + 0xc]
mov cl, byte [eax]
inc eax
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x10]
fmul st(1)
fild dword [esp + 0xc]
dec ecx
mov dword [esp + 0x10], ecx
fmul qword [esp + 0x50]
faddp st(1)
fmul qword [esp + 0x40]
fadd qword [edx - 8]
fstp qword [edx - 8]
jne 0x4aa30d
fstp st(0)
jmp 0x4aa44a
test ebx, ebx
jle 0x4aa44e
fld qword [0x4dd198]
fsub qword [esp + 0x48]
mov esi, edi
mov edx, ecx
sub esi, eax
mov dword [esp + 0x10], ebx
xor ecx, ecx
add edx, 8
mov cl, byte [esi + eax]
mov dword [esp + 0xc], ecx
xor ecx, ecx
fild dword [esp + 0xc]
mov cl, byte [eax]
inc eax
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x10]
fmul st(1)
fild dword [esp + 0xc]
dec ecx
mov dword [esp + 0x10], ecx
fmul qword [esp + 0x48]
faddp st(1)
fmul qword [esp + 0x40]
fadd qword [edx - 8]
fstp qword [edx - 8]
jne 0x4aa36a
fstp st(0)
jmp 0x4aa44a
test ebx, ebx
jle 0x4aa44e
fld qword [0x4dd198]
fsub qword [esp + 0x50]
fld qword [0x4dd198]
fsub qword [esp + 0x48]
mov esi, edi
mov edi, dword [esp + 0x14]
sub esi, eax
sub edi, eax
sub edx, eax
mov dword [esp + 0x10], ebx
xor ebx, ebx
add ecx, 8
mov bl, byte [edx + eax]
mov dword [esp + 0xc], ebx
xor ebx, ebx
fild dword [esp + 0xc]
mov bl, byte [edi + eax]
mov dword [esp + 0xc], ebx
xor ebx, ebx
fmul qword [esp + 0x48]
fild dword [esp + 0xc]
mov bl, byte [eax + esi]
mov dword [esp + 0xc], ebx
xor ebx, ebx
fmul st(2)
mov bl, byte [eax]
inc eax
faddp st(1)
fmul qword [esp + 0x50]
fild dword [esp + 0xc]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x10]
dec ebx
fmul st(2)
fild dword [esp + 0xc]
mov dword [esp + 0x10], ebx
fmul qword [esp + 0x48]
faddp st(1)
fmul st(3)
faddp st(1)
fmul qword [esp + 0x40]
fadd qword [ecx - 8]
fstp qword [ecx - 8]
jne 0x4aa3d7
mov ebx, dword [esp + 0x84]
mov edi, dword [esp + 0x5c]
fstp st(0)
fstp st(0)
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4aa46e
mov esi, dword [esp + 0x18]
lea eax, [ebx*8]
inc esi
add ecx, eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x38], ecx
jmp 0x4aa47e
mov eax, dword [esp + 0x14]
add edi, ebx
add eax, ebx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x18]
mov eax, dword [ebp + 0x10]
cmp edx, eax
jl 0x4aa213
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0x3c]
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4aa57b
fld qword [esp + 0x70]
fmul qword [esp + 0x78]
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0xac]
mov esi, eax
imul esi, dword [esp + 0x2c]
fdivr qword [0x4dd198]
add esi, edx
cmp word [esp + 0x94], 1
fstp qword [esp + 0x40]
jne 0x4aa515
xor ecx, ecx
test eax, eax
jle 0x4aa54c
mov edx, dword [esp + 0x20]
fld qword [esp + 0x40]
fmul qword [edx]
fcomp qword [0x4dd030]
fnstsw ax
test ah, 0x41
jne 0x4aa500
mov byte [esi], 0xff
jmp 0x4aa503
fstp st(0)
fstp st(0)
jmp 0x4aa498
mov byte [esi], 0
mov eax, dword [esp + 0x90]
inc esi
inc ecx
add edx, 8
cmp ecx, eax
jl 0x4aa4e2
jmp 0x4aa54c
xor edi, edi
test eax, eax
jle 0x4aa54c
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
fld qword [esp + 0x40]
fmul qword [ecx]
call fcn.004b1b34
mov ecx, dword [esp + 0x18]
mov byte [esi], al
mov eax, dword [esp + 0x90]
inc esi
inc edi
add ecx, 8
cmp edi, eax
mov dword [esp + 0x18], ecx
jl 0x4aa523
mov ecx, ebx
mov edi, dword [esp + 0x20]
imul ecx, dword [ebp + 0x10]
shl ecx, 3
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov esi, dword [ebp + 8]
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x3c]
inc eax
mov dword [esp + 0x2c], eax
jmp 0x4aa582
add edi, dword [esi + 8]
mov dword [esp + 0x3c], edi
mov eax, dword [esp + 0x2c]
mov ecx, dword [ebp + 0x14]
cmp eax, ecx
jl 0x4aa159
mov ecx, dword [esp + 0x20]
fstp st(0)
push ecx
call fcn.004b17e0
mov eax, dword [esi + 0x20]
add esp, 4
test eax, eax
je 0x4aa5ba
mov edi, dword [esp + 0xa8]
mov ecx, 0xc0
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov cx, word [esi + 0x12]
test edi, edi
mov word [esp + 0x9a], cx
je 0x4aa5e9
mov ecx, 0xa
lea esi, [esp + 0x88]
rep movsd dword es:[edi], dword [esi]
xor ax, ax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
fstp st(0)
jmp 0x4aa597
push esi
call fcn.00404e40
mov edi, dword [ebp + 8]
mov ecx, 0xa
lea esi, [esp + 0x8c]
add esp, 4
rep movsd dword es:[edi], dword [esi]
xor ax, ax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0xc]
push ecx
push edi
push edx
push esi
call fcn.004aa640
add esp, 0x10
xor ax, ax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov ax, 0x10
pop ebx
mov esp, ebp
pop ebp
ret