Function at 0x4aa4b0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x138
push ebx
push ebp
mov ebp, dword [esp + 0x144]
push esi
push edi
push ebp
call fcn.004a78b0
add esp, 4
test eax, eax
je 0x4aad87
mov edi, dword [esp + 0x150]
push edi
call fcn.004a78b0
add esp, 4
test eax, eax
je 0x4aad87
push ebp
call fcn.004a7800
add esp, 4
test eax, eax
jne 0x4aad87
push edi
call fcn.004a7800
add esp, 4
test eax, eax
jne 0x4aad87
mov eax, dword [0x11f4dd8]
mov ecx, dword [0x11edb00]
lea ebp, [ebp + ebp*2]
lea edi, [edi + edi*2]
mov eax, dword [eax + 0xd4]
mov esi, ecx
shl ebp, 4
shl edi, 4
add ebp, eax
add edi, eax
push esi
mov dword [esp + 0x64], ebp
mov dword [esp + 0x74], edi
mov dword [esp + 0x3c], ecx
call fcn.004a77d0
fadd st(0), st(0)
push esi
fstp dword [esp + 0x60]
call fcn.004a77b0
fstp dword [esp + 0x58]
mov ebx, edi
add esp, 8
xor edx, edx
lea esi, [edi + 0xc]
lea ecx, [ebp + 0x18]
sub ebx, ebp
fld dword [esp + 0x58]
fadd dword [ebx + ecx]
fcomp dword [ecx - 0xc]
fnstsw ax
test ah, 1
jne 0x4aad87
fld dword [esi]
fsub dword [esp + 0x58]
fcomp dword [ecx]
fnstsw ax
test ah, 0x41
je 0x4aad87
inc edx
add ecx, 4
add esi, 4
cmp edx, 2
jl 0x4aa561
fld dword [esp + 0x50]
fadd dword [ebp + 0x20]
fcomp dword [edi + 0x14]
fnstsw ax
test ah, 1
jne 0x4aad87
mov eax, dword [ebp + 4]
xor esi, esi
test eax, eax
mov dword [esp + 0x4c], 0x497423f0
mov dword [esp + 0x48], esi
jle 0x4aa785
mov ecx, dword [0x11f4dd8]
mov edx, dword [ebp + 8]
mov eax, dword [ecx + 0xcc]
add edx, esi
mov eax, dword [eax + edx*4]
cdq
xor eax, edx
sub eax, edx
lea edx, [eax + eax*2]
mov eax, dword [ecx + 0xc4]
lea ebx, [eax + edx*8]
mov dword [esp + 0x54], ebx
test byte [ebx + 4], 4
je 0x4aa775
mov eax, dword [edi + 4]
mov dword [esp + 0x5c], 0
test eax, eax
jle 0x4aa775
mov edx, dword [edi + 8]
mov eax, dword [esp + 0x5c]
add edx, eax
mov eax, dword [ecx + 0xcc]
mov eax, dword [eax + edx*4]
cdq
xor eax, edx
sub eax, edx
lea edx, [eax + eax*2]
mov eax, dword [ecx + 0xc4]
lea esi, [eax + edx*8]
mov al, byte [eax + edx*8 + 4]
test al, 4
je 0x4aa75d
mov eax, dword [ebx + 8]
xor ebp, ebp
test eax, eax
mov dword [esp + 0x50], ebp
jle 0x4aa759
jmp 0x4aa64f
mov ebx, dword [esp + 0x54]
mov edx, dword [ebx + 0xc]
mov eax, dword [ecx + 0xbc]
add edx, ebp
xor edi, edi
mov eax, dword [eax + edx*4]
cdq
xor eax, edx
sub eax, edx
mov edx, dword [ecx + 0xb4]
lea ebx, [edx + eax*8]
mov eax, dword [esi + 8]
test eax, eax
jle 0x4aa741
mov eax, dword [esi + 0xc]
mov edx, dword [ecx + 0xbc]
add eax, edi
mov ebp, dword [ebx]
mov eax, dword [edx + eax*4]
lea ebp, [ebp + ebp*2]
cdq
xor eax, edx
sub eax, edx
mov edx, dword [ecx + 0xb4]
lea edx, [edx + eax*8]
mov eax, dword [ecx + 0xa4]
mov ecx, dword [ecx + 0xac]
lea ebp, [eax + ebp*4]
mov dword [esp + 0x78], ebp
mov ebp, dword [ebx + 4]
lea ebp, [ebp + ebp*2]
lea ebp, [eax + ebp*4]
mov dword [esp + 0x74], ebp
mov ebp, dword [edx]
mov edx, dword [edx + 4]
lea ebp, [ebp + ebp*2]
lea edx, [edx + edx*2]
lea ebp, [eax + ebp*4]
lea edx, [eax + edx*4]
mov eax, dword [esp + 0x54]
mov eax, dword [eax]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov dword [esp + 0x7c], eax
mov eax, dword [esi]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x4c]
push ecx
lea ecx, [esp + 0xcc]
push ecx
lea ecx, [esp + 0xc4]
push ecx
lea ecx, [esp + 0x34]
push ecx
lea ecx, [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x88]
push eax
mov eax, dword [esp + 0x94]
push eax
push edx
mov edx, dword [esp + 0x98]
push ebp
push ecx
push edx
call fcn.004a9980
mov eax, dword [esi + 8]
mov ecx, dword [0x11f4dd8]
fstp dword [esp + 0x78]
add esp, 0x2c
inc edi
cmp edi, eax
jl 0x4aa678
mov ebp, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
inc ebp
mov dword [esp + 0x50], ebp
cmp ebp, dword [eax + 8]
jl 0x4aa64b
mov edi, dword [esp + 0x70]
mov ebx, eax
mov ebp, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
mov edx, dword [edi + 4]
inc eax
cmp eax, edx
mov dword [esp + 0x5c], eax
jl 0x4aa609
mov esi, dword [esp + 0x48]
mov eax, dword [ebp + 4]
inc esi
cmp esi, eax
mov dword [esp + 0x48], esi
jl 0x4aa5c9
lea ecx, [esp + 0x1c]
lea edx, [esp + 0xbc]
push ecx
lea eax, [esp + 0x20]
push edx
push eax
call fcn.004a9930
lea ecx, [esp + 0x34]
lea edx, [esp + 0xd4]
push ecx
lea eax, [esp + 0x38]
push edx
push eax
call fcn.004a9930
fld dword [esp + 0x64]
fcomp dword [0x4d6478]
add esp, 0x18
fnstsw ax
test ah, 0x41
jne 0x4aad87
fld dword [esp + 0x4c]
fcomp dword [esp + 0x58]
fnstsw ax
test ah, 1
je 0x4aad87
lea ecx, [esp + 0x34]
lea edx, [esp + 0x28]
push ecx
lea eax, [esp + 0x20]
push edx
push eax
push 0
call fcn.004a6e70
add esp, 0x10
test eax, eax
je 0x4aa813
fld dword [esp + 0x34]
fmul qword [0x4d7428]
mov ebx, 7
fstp dword [esp + 0x34]
jmp 0x4aa8b1
fld dword [esp + 0x4c]
fcomp dword [0x4d6840]
fnstsw ax
test ah, 0x41
je 0x4aa84a
fld dword [esp + 0x24]
fsub dword [esp + 0x30]
fabs
fcomp qword [0x4d7000]
fnstsw ax
test ah, 1
je 0x4aa84a
mov dword [esp + 0x34], 0x43c80000
mov ebx, 7
jmp 0x4aa8b1
lea ecx, [esp + 0x34]
lea edx, [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x20]
push edx
push eax
push ecx
call fcn.004a6e70
add esp, 0x10
test eax, eax
je 0x4aad87
fld dword [esp + 0x28]
fsub dword [esp + 0x1c]
lea edx, [esp + 0x10]
mov ebx, 5
push edx
mov dword [esp + 0x1c], 0
fstp dword [esp + 0x14]
fld dword [esp + 0x30]
fsub dword [esp + 0x24]
fstp dword [esp + 0x18]
call fcn.0042a770
fcomp dword [0x4d6434]
add esp, 4
fnstsw ax
test ah, 1
jne 0x4aad87
fld dword [esp + 0x28]
fsub dword [esp + 0x1c]
lea eax, [esp + 0x10]
push eax
fstp dword [esp + 0x14]
fld dword [esp + 0x30]
fsub dword [esp + 0x24]
fstp dword [esp + 0x18]
fld dword [esp + 0x34]
fsub dword [esp + 0x28]
fstp dword [esp + 0x1c]
call fcn.0042a510
fstp st(0)
fld dword [esp + 0x14]
fadd dword [esp + 0x20]
push 0xffffffffffffffff
lea edx, [esp + 0x6c]
push 2
lea eax, [esp + 0x48]
push edx
push eax
fst dword [esp + 0x50]
fld dword [esp + 0x28]
fadd dword [esp + 0x34]
fstp dword [esp + 0x54]
fld dword [esp + 0x2c]
fadd dword [esp + 0x38]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x7c], ecx
lea ecx, [esp + 0x138]
push ecx
fstp dword [esp + 0x5c]
fstp dword [esp + 0x7c]
fld dword [esp + 0x5c]
fsub dword [0x4d6578]
fstp dword [esp + 0x84]
call fcn.004b0900
mov ecx, 9
mov esi, eax
lea edi, [esp + 0xb0]
xor ebp, ebp
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xb0]
add esp, 0x18
cmp eax, ebp
jne 0x4aad87
fld dword [esp + 0x9c]
fcomp dword [0x4d63c0]
fnstsw ax
test ah, 1
je 0x4aa9ce
mov eax, dword [esp + 0xb8]
lea edx, [eax + eax*4]
mov eax, dword [0x11f4dd8]
mov ecx, dword [eax + 0xac]
fld dword [ecx + edx*4 + 8]
lea eax, [ecx + edx*4]
fcomp qword [0x4d6f58]
fnstsw ax
test ah, 1
jne 0x4aa9ce
lea edx, [esp + 0xa0]
push edx
call fcn.004afb10
add esp, 4
test al, 8
jne 0x4aa9ce
fld dword [esp + 0x44]
fsub dword [esp + 0xa8]
fcomp dword [0x11edafc]
fnstsw ax
test ah, 0x41
jne 0x4aad87
fld dword [esp + 0x28]
fsub dword [esp + 0x10]
push 0xffffffffffffffff
lea ecx, [esp + 0x68]
push 2
lea edx, [esp + 0x44]
push ecx
push edx
fst dword [esp + 0x4c]
fld dword [esp + 0x3c]
fsub dword [esp + 0x24]
fstp dword [esp + 0x50]
fld dword [esp + 0x40]
fsub dword [esp + 0x28]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x78], eax
lea eax, [esp + 0x134]
push eax
fstp dword [esp + 0x58]
fstp dword [esp + 0x78]
fld dword [esp + 0x58]
fsub dword [0x4d6578]
fstp dword [esp + 0x80]
call fcn.004b0900
mov ecx, 9
mov esi, eax
lea edi, [esp + 0xac]
add esp, 0x14
rep movsd dword es:[edi], dword [esi]
cmp dword [esp + 0x98], ebp
jne 0x4aad87
fld dword [esp + 0x9c]
fcomp dword [0x4d63c0]
fnstsw ax
test ah, 1
je 0x4aaab8
mov eax, dword [esp + 0xb8]
mov edx, dword [0x11f4dd8]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xac]
fld dword [eax + ecx*4 + 8]
lea eax, [eax + ecx*4]
fcomp qword [0x4d6f58]
fnstsw ax
test ah, 1
jne 0x4aaab8
lea ecx, [esp + 0xa0]
push ecx
call fcn.004afb10
add esp, 4
test al, 0x18
jne 0x4aaab8
fld dword [esp + 0x44]
fsub dword [esp + 0xa8]
fcomp dword [0x11edafc]
fnstsw ax
test ah, 0x41
jne 0x4aad87
fld dword [esp + 0x28]
fsub dword [esp + 0x1c]
lea edx, [esp + 0x10]
mov dword [esp + 0x18], 0
push edx
fstp dword [esp + 0x14]
fld dword [esp + 0x30]
fsub dword [esp + 0x24]
fstp dword [esp + 0x18]
call fcn.0042a510
fstp st(0)
fld dword [esp + 0x14]
fmul dword [esp + 0x38]
add esp, 4
cmp ebx, 5
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
fstp dword [esp + 0x8c]
fld dword [esp + 0x14]
fmul dword [esp + 0x34]
fstp dword [esp + 0x90]
fld dword [esp + 0x18]
fmul dword [esp + 0x34]
fstp dword [esp + 0x94]
jne 0x4aab3d
mov eax, dword [0x11edb00]
mov dword [esp + 0x88], eax
jmp 0x4aab48
mov dword [esp + 0x88], 0
push ebp
push ebp
push 0x3d
push 0x3dcccccd
push 0x1e
lea ecx, [esp + 0x94]
push 3
lea edx, [esp + 0xa4]
push ecx
push edx
push 1
lea eax, [esp + 0x40]
push 2
push eax
lea ecx, [esp + 0x100]
push 0xffffffffffffffff
push ecx
call fcn.004a5e50
mov eax, dword [esp + 0x154]
add esp, 0x34
cmp eax, 0x1e
jge 0x4aad87
test byte [esp + 0x114], 0x10
jne 0x4aad87
xor esi, esi
mov dword [esp + 0x48], esi
fild dword [esp + 0x48]
lea edx, [esp + 0x3c]
push edx
fld st(0)
fmul dword [esp + 0x14]
fsubr dword [esp + 0xd8]
fstp dword [esp + 0x40]
fld st(0)
fmul dword [esp + 0x18]
fsubr dword [esp + 0xdc]
fstp dword [esp + 0x44]
fmul dword [esp + 0x1c]
fsubr dword [esp + 0xe0]
fadd qword [0x4d6480]
fstp dword [esp + 0x48]
call fcn.004b06c0
mov edi, dword [esp + 0x154]
add esp, 4
cmp eax, edi
je 0x4aac10
add esi, 8
cmp esi, 0x20
mov dword [esp + 0x48], esi
jle 0x4aaba4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x138
ret
cmp esi, 0x20
jg 0x4aad87
call fcn.004a7280
mov esi, eax
cmp esi, ebp
je 0x4aad87
mov dword [esi], edi
mov dword [esi + 4], ebp
mov dword [esi + 8], ebp
mov eax, dword [esp + 0x1c]
mov dword [esi + 0xc], eax
mov ecx, dword [esp + 0x20]
mov dword [esi + 0x10], ecx
mov edx, dword [esp + 0x24]
mov dword [esi + 0x14], edx
mov eax, dword [esp + 0x28]
mov dword [esi + 0x18], eax
mov ecx, dword [esp + 0x2c]
mov dword [esi + 0x1c], ecx
mov edx, dword [esp + 0x30]
mov dword [esi + 0x20], edx
mov dword [esi + 0x24], ebx
fld dword [esp + 0x28]
fsub dword [esp + 0x1c]
cmp ebx, 7
mov dword [esp + 0x18], 0
fstp dword [esp + 0x10]
fld dword [esp + 0x2c]
fsub dword [esp + 0x20]
fstp dword [esp + 0x14]
fld dword [esp + 0x30]
fsub dword [esp + 0x24]
fstp dword [esp + 0x38]
jne 0x4aacbe
lea eax, [esp + 0x10]
push eax
call fcn.0042a770
fcomp dword [esp + 0x3c]
add esp, 4
fnstsw ax
test ah, 1
je 0x4aacbe
fld dword [esp + 0x38]
fmul dword [0x4d7370]
fdiv dword [0x11edac8]
fadd dword [0x4d73ac]
jmp 0x4aace2
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x28]
push ecx
push edx
call fcn.0042ae00
fmul dword [0x4d7424]
add esp, 8
fdiv dword [0x11edad8]
fadd dword [0x4d73dc]
call fcn.004c2f40
push edi
mov word [esi + 0x28], ax
call fcn.004a78f0
add esp, 4
test eax, eax
jne 0x4aad48
fld dword [esp + 0x24]
fsub dword [esp + 0x30]
push ecx
fstp dword [esp]
call fcn.004a7780
fcomp dword [0x4d7408]
add esp, 4
fnstsw ax
test ah, 0x41
jne 0x4aad21
add word [esi + 0x28], 0x190
jmp 0x4aad48
fld dword [esp + 0x24]
fsub dword [esp + 0x30]
push ecx
fstp dword [esp]
call fcn.004a7780
fcomp dword [0x4d7380]
add esp, 4
fnstsw ax
test ah, 0x41
jne 0x4aad48
add word [esi + 0x28], 0x384
mov ecx, dword [0x11eda54]
mov eax, dword [esp + 0x14c]
cmp ebx, 5
mov edx, dword [ecx + eax*4]
mov dword [esi + 0x2c], edx
mov ecx, dword [0x11eda54]
mov dword [ecx + eax*4], esi
jne 0x4aad81
mov eax, dword [0x11eda70]
pop edi
inc eax
pop esi
mov dword [0x11eda70], eax
pop ebp
xor eax, eax
pop ebx
add esp, 0x138
ret
inc dword [0x11edaa4]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x138
ret