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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xac
push ebx
push esi
mov esi, dword [ebp + 0xc]
fld dword [esi + 0x10]
push edi
fmul dword [esi + 4]
lea edi, [esi + 4]
fld dword [edi + 8]
fmul dword [edi + 4]
fsubp st(1)
fabs
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
call fcn.0065d6c0
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
mov edx, dword [esi]
fstp dword [esp + 0x40]
fldz
push ecx
fstp dword [esp + 0x60]
lea ecx, [esp + 0x60]
fld dword [esp + 0x44]
fstp dword [esp]
push ebx
call fcn.004a9ce0
xor ecx, ecx
add esp, 8
mov dword [esp + 0x1c], eax
cmp eax, ecx
jne 0x4aaac3
mov eax, dword [ebp + 0x14]
push ecx
mov ecx, dword [ebp + 0x10]
push eax
push ecx
push ebx
mov ebx, esi
call fcn.004aa7b0
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x14], ecx
cmp dword [esi + 0x20], ecx
jle 0x4aaaf9
mov dword [esp + 0xc], ecx
mov ebx, dword [esi + 0x28]
add ebx, dword [esp + 0xc]
mov eax, dword [esi]
call fcn.004aa610
test ax, ax
je 0x4aab1e
mov eax, dword [esp + 0x14]
add dword [esp + 0xc], 0x10
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esi + 0x20]
jl 0x4aaad0
mov ebx, dword [ebp + 8]
mov eax, dword [esi]
mov esi, dword [eax + 0x24]
movzx eax, word [esi + 0x44]
mov edx, dword [ebx + 8]
mov ebx, dword [edx + 8]
mov dword [esp + 0xc], ebx
cmp eax, 0x3e8
jle 0x4aab3d
cmp eax, 0x10000
jl 0x4aab42
xor eax, eax
jmp 0x4aab42
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
push 0
push edx
push eax
push ecx
mov ebx, esi
call fcn.004aa7b0
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x3e8
push 0x48
movzx eax, ax
push 0x48
push eax
push eax
push esi
call fcn.0060a1d0
add esp, 0x14
push 0
push 0
push esi
call fcn.006099c0
add esp, 0xc
push 0x9f4e20
call dword [sym.imp.gdiplus.dll_GdipStringFormatGetGenericTypographic]
fld dword [esp + 0x40]
fdivr qword [0x9ad8c8]
lea ecx, [esp + 0x64]
mov dword [0x9f4e24], eax
mov edx, edi
mov eax, ecx
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [esp + 0x64]
fldz
fst dword [esp + 0x68]
fst dword [esp + 0x6c]
fst dword [esp + 0x74]
fstp dword [esp + 0x78]
fstp dword [esp + 0x70]
call fcn.004bdca0
mov esi, ebx
lea edi, [esp + 0x20]
call fcn.004a8f90
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x44], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x48], edx
mov edx, dword [eax + 0xc]
xor edi, edi
mov dword [esp + 0x4c], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x50], edx
mov edx, dword [eax + 0x14]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x18], edi
cmp dword [esi + 0x20], edi
jle 0x4aaecc
mov dword [esp + 0x14], edi
jmp 0x4aabfa
mov edi, dword [esp + 0x14]
mov ebx, dword [esi + 0x28]
mov eax, dword [esi]
add ebx, edi
call fcn.004aa610
movzx eax, ax
mov dword [esp + 0x60], eax
cmp eax, 0x20
jne 0x4aaccc
fld dword [esp + 0x58]
mov eax, dword [ebp + 0xc]
lea edx, [esp + 0x10]
push edx
sub esp, 0x18
fstp dword [esp + 0x14]
mov ecx, 0xb
fld dword [esp + 0x70]
lea edi, [esp + 0xa8]
fstp dword [esp + 0x10]
rep movsd dword es:[edi], dword [esi]
fld dword [esp + 0x6c]
fstp dword [esp + 0xc]
fld dword [esp + 0x68]
fstp dword [esp + 8]
fld dword [esp + 0x64]
fstp dword [esp + 4]
fld dword [esp + 0x60]
fstp dword [esp]
mov ecx, dword [eax + 0x28]
add ecx, dword [esp + 0x30]
mov dword [esp + 0xc8], 1
mov dword [esp + 0xd0], ecx
mov dword [esp + 0x2c], 0
call dword [sym.imp.gdiplus.dll_GdipCreateMatrix2]
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0xc]
push eax
mov esi, eax
mov eax, dword [edi]
push eax
call dword [sym.imp.gdiplus.dll_GdipSetWorldTransform]
test eax, eax
je 0x4aaca0
mov dword [edi + 4], eax
push esi
call dword [sym.imp.gdiplus.dll_GdipDeleteMatrix]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
push 0
push ecx
push edx
push eax
lea ebx, [esp + 0x9c]
call fcn.004aa7b0
mov esi, dword [ebp + 0xc]
add esp, 0x10
jmp 0x4aaeb1
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x24], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x28], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 0x14]
mov eax, dword [esi + 0x28]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
fld dword [eax + edi]
fstp dword [esp + 0x3c]
lea ecx, [esp + 0x20]
fld dword [eax + edi + 4]
lea edx, [esp + 0x64]
fstp dword [esp + 0x10]
mov eax, ecx
fld dword [esp + 0x28]
fld dword [esp + 0x10]
fld st(0)
fmulp st(2)
fld dword [esp + 0x20]
fld dword [esp + 0x3c]
fld st(0)
fmulp st(2)
fxch st(3)
faddp st(1)
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fmul dword [esp + 0x2c]
fld dword [esp + 0x24]
fmulp st(2)
faddp st(1)
fadd dword [esp + 0x34]
fstp dword [esp + 0x34]
call fcn.004bdca0
fld dword [eax]
fld qword [0x9ad8c8]
fmul st(1), st(0)
fxch st(1)
fstp dword [eax]
fmul dword [eax + 4]
fstp dword [eax + 4]
mov ecx, dword [esi + 0x28]
fld dword [esp + 0x40]
fchs
fmul dword [esp + 0x5c]
fstp dword [esp + 0x3c]
fld dword [esp + 0x28]
fld dword [esp + 0x3c]
fld st(0)
fmulp st(2)
fld dword [esp + 0x20]
fldz
fmul st(1), st(0)
fxch st(3)
faddp st(1)
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fmul dword [esp + 0x2c]
fld dword [esp + 0x24]
fmulp st(2)
faddp st(1)
fadd dword [esp + 0x34]
fstp dword [esp + 0x34]
mov ebx, dword [edi + ecx + 8]
mov edi, dword [esi]
call fcn.004aa570
fstp dword [esp + 0x3c]
fld dword [esp + 0x3c]
fld st(0)
fld1
fucompp
fnstsw ax
test ah, 0x44
jnp 0x4aadde
fld dword [esp + 0x20]
fmul st(1)
fstp dword [esp + 0x20]
fmul dword [esp + 0x24]
fstp dword [esp + 0x24]
jmp 0x4aade0
fstp st(0)
lea edx, [esp + 0x20]
lea ecx, [esp + 0x44]
mov eax, edx
call fcn.004bdca0
fld dword [esp + 0x34]
lea edx, [esp + 0x10]
push edx
sub esp, 0x18
fstp dword [esp + 0x14]
mov dword [esp + 0x2c], 0
fld dword [esp + 0x4c]
fstp dword [esp + 0x10]
fld dword [esp + 0x48]
fstp dword [esp + 0xc]
fld dword [esp + 0x44]
fstp dword [esp + 8]
fld dword [esp + 0x40]
fstp dword [esp + 4]
fld dword [esp + 0x3c]
fstp dword [esp]
call dword [sym.imp.gdiplus.dll_GdipCreateMatrix2]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
push eax
mov edi, eax
mov eax, dword [ebx]
push eax
call dword [sym.imp.gdiplus.dll_GdipSetWorldTransform]
test eax, eax
je 0x4aae4f
mov dword [ebx + 4], eax
push edi
call dword [sym.imp.gdiplus.dll_GdipDeleteMatrix]
fldz
mov eax, dword [ebp + 0x14]
fst dword [esp + 0x7c]
fst dword [esp + 0x80]
fst dword [esp + 0x84]
fstp dword [esp + 0x88]
test eax, eax
je 0x4aae7d
mov eax, dword [eax + 4]
jmp 0x4aae7f
xor eax, eax
mov ecx, dword [0x9f4e20]
push eax
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [eax]
mov eax, dword [ebx]
lea edx, [esp + 0x84]
push edx
push ecx
push 1
lea edx, [esp + 0x74]
push edx
push eax
call dword [sym.imp.gdiplus.dll_GdipDrawString]
test eax, eax
je 0x4aaeb1
mov ecx, dword [esp + 0xc]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x18]
add dword [esp + 0x14], 0x10
inc eax
mov dword [esp + 0x18], eax
cmp eax, dword [esi + 0x20]
jl 0x4aabf6
mov ebx, dword [esp + 0xc]
fld dword [esp + 0x58]
lea edx, [esp + 0x18]
push edx
sub esp, 0x18
fstp dword [esp + 0x14]
mov dword [esp + 0x34], 0
fld dword [esp + 0x70]
fstp dword [esp + 0x10]
fld dword [esp + 0x6c]
fstp dword [esp + 0xc]
fld dword [esp + 0x68]
fstp dword [esp + 8]
fld dword [esp + 0x64]
fstp dword [esp + 4]
fld dword [esp + 0x60]
fstp dword [esp]
call dword [sym.imp.gdiplus.dll_GdipCreateMatrix2]
mov eax, dword [esp + 0x18]
push eax
mov esi, eax
mov eax, dword [ebx]
push eax
call dword [sym.imp.gdiplus.dll_GdipSetWorldTransform]
test eax, eax
je 0x4aaf28
mov dword [ebx + 4], eax
push esi
call dword [sym.imp.gdiplus.dll_GdipDeleteMatrix]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esi]
push ecx
call dword [sym.imp.gdiplus.dll_GdipDeleteFont]
push esi
call dword [sym.imp.gdiplus.dll_GdipFree]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret