Function at 0x4a9b70
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.004a6f70
add esp, 4
test eax, eax
je 0x4aa447
mov edi, dword [esp + 0x150]
push edi
call fcn.004a6f70
add esp, 4
test eax, eax
je 0x4aa447
push ebp
call fcn.004a6ec0
add esp, 4
test eax, eax
jne 0x4aa447
push edi
call fcn.004a6ec0
add esp, 4
test eax, eax
jne 0x4aa447
mov eax, dword [0x1180458]
mov ecx, dword [0x11770c0]
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.004a6e90
fadd st(0), st(0)
push esi
fstp dword [esp + 0x60]
call fcn.004a6e70
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 0x4aa447
fld dword [esi]
fsub dword [esp + 0x58]
fcomp dword [ecx]
fnstsw ax
test ah, 0x41
je 0x4aa447
inc edx
add ecx, 4
add esi, 4
cmp edx, 2
jl 0x4a9c21
fld dword [esp + 0x50]
fadd dword [ebp + 0x20]
fcomp dword [edi + 0x14]
fnstsw ax
test ah, 1
jne 0x4aa447
mov eax, dword [ebp + 4]
xor esi, esi
test eax, eax
mov dword [esp + 0x4c], 0x497423f0
mov dword [esp + 0x48], esi
jle 0x4a9e45
mov ecx, dword [0x1180458]
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 0x4a9e35
mov eax, dword [edi + 4]
mov dword [esp + 0x5c], 0
test eax, eax
jle 0x4a9e35
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 0x4a9e1d
mov eax, dword [ebx + 8]
xor ebp, ebp
test eax, eax
mov dword [esp + 0x50], ebp
jle 0x4a9e19
jmp 0x4a9d0f
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 0x4a9e01
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.004a9040
mov eax, dword [esi + 8]
mov ecx, dword [0x1180458]
fstp dword [esp + 0x78]
add esp, 0x2c
inc edi
cmp edi, eax
jl 0x4a9d38
mov ebp, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
inc ebp
mov dword [esp + 0x50], ebp
cmp ebp, dword [eax + 8]
jl 0x4a9d0b
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 0x4a9cc9
mov esi, dword [esp + 0x48]
mov eax, dword [ebp + 4]
inc esi
cmp esi, eax
mov dword [esp + 0x48], esi
jl 0x4a9c89
lea ecx, [esp + 0x1c]
lea edx, [esp + 0xbc]
push ecx
lea eax, [esp + 0x20]
push edx
push eax
call fcn.004a8ff0
lea ecx, [esp + 0x34]
lea edx, [esp + 0xd4]
push ecx
lea eax, [esp + 0x38]
push edx
push eax
call fcn.004a8ff0
fld dword [esp + 0x64]
fcomp dword [0x4d7450]
add esp, 0x18
fnstsw ax
test ah, 0x41
jne 0x4aa447
fld dword [esp + 0x4c]
fcomp dword [esp + 0x58]
fnstsw ax
test ah, 1
je 0x4aa447
lea ecx, [esp + 0x34]
lea edx, [esp + 0x28]
push ecx
lea eax, [esp + 0x20]
push edx
push eax
push 0
call fcn.004a6530
add esp, 0x10
test eax, eax
je 0x4a9ed3
fld dword [esp + 0x34]
fmul qword [0x4d8440]
mov ebx, 7
fstp dword [esp + 0x34]
jmp 0x4a9f71
fld dword [esp + 0x4c]
fcomp dword [0x4d8344]
fnstsw ax
test ah, 0x41
je 0x4a9f0a
fld dword [esp + 0x24]
fsub dword [esp + 0x30]
fabs
fcomp qword [0x4d7ff8]
fnstsw ax
test ah, 1
je 0x4a9f0a
mov dword [esp + 0x34], 0x43c80000
mov ebx, 7
jmp 0x4a9f71
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.004a6530
add esp, 0x10
test eax, eax
je 0x4aa447
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.004285d0
fcomp dword [0x4d83a8]
add esp, 4
fnstsw ax
test ah, 1
jne 0x4aa447
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.00428370
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 [0x4d77c0]
fstp dword [esp + 0x84]
call fcn.004affd0
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 0x4aa447
fld dword [esp + 0x9c]
fcomp dword [0x4d7390]
fnstsw ax
test ah, 1
je 0x4aa08e
mov eax, dword [esp + 0xb8]
lea edx, [eax + eax*4]
mov eax, dword [0x1180458]
mov ecx, dword [eax + 0xac]
fld dword [ecx + edx*4 + 8]
lea eax, [ecx + edx*4]
fcomp qword [0x4d7f50]
fnstsw ax
test ah, 1
jne 0x4aa08e
lea edx, [esp + 0xa0]
push edx
call fcn.004af1e0
add esp, 4
test al, 8
jne 0x4aa08e
fld dword [esp + 0x44]
fsub dword [esp + 0xa8]
fcomp dword [0x11770bc]
fnstsw ax
test ah, 0x41
jne 0x4aa447
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 [0x4d77c0]
fstp dword [esp + 0x80]
call fcn.004affd0
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 0x4aa447
fld dword [esp + 0x9c]
fcomp dword [0x4d7390]
fnstsw ax
test ah, 1
je 0x4aa178
mov eax, dword [esp + 0xb8]
mov edx, dword [0x1180458]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xac]
fld dword [eax + ecx*4 + 8]
lea eax, [eax + ecx*4]
fcomp qword [0x4d7f50]
fnstsw ax
test ah, 1
jne 0x4aa178
lea ecx, [esp + 0xa0]
push ecx
call fcn.004af1e0
add esp, 4
test al, 0x18
jne 0x4aa178
fld dword [esp + 0x44]
fsub dword [esp + 0xa8]
fcomp dword [0x11770bc]
fnstsw ax
test ah, 0x41
jne 0x4aa447
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.00428370
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 0x4aa1fd
mov eax, dword [0x11770c0]
mov dword [esp + 0x88], eax
jmp 0x4aa208
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.004a5510
mov eax, dword [esp + 0x154]
add esp, 0x34
cmp eax, 0x1e
jge 0x4aa447
test byte [esp + 0x114], 0x10
jne 0x4aa447
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 [0x4d7460]
fstp dword [esp + 0x48]
call fcn.004afd90
mov edi, dword [esp + 0x154]
add esp, 4
cmp eax, edi
je 0x4aa2d0
add esi, 8
cmp esi, 0x20
mov dword [esp + 0x48], esi
jle 0x4aa264
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x138
ret
cmp esi, 0x20
jg 0x4aa447
call fcn.004a6940
mov esi, eax
cmp esi, ebp
je 0x4aa447
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 0x4aa37e
lea eax, [esp + 0x10]
push eax
call fcn.004285d0
fcomp dword [esp + 0x3c]
add esp, 4
fnstsw ax
test ah, 1
je 0x4aa37e
fld dword [esp + 0x38]
fmul dword [0x4d8350]
fdiv dword [0x1177088]
fadd dword [0x4d83b4]
jmp 0x4aa3a2
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x28]
push ecx
push edx
call fcn.00428c60
fmul dword [0x4d843c]
add esp, 8
fdiv dword [0x1177098]
fadd dword [0x4d83f4]
call fcn.004c2730
push edi
mov word [esi + 0x28], ax
call fcn.004a6fb0
add esp, 4
test eax, eax
jne 0x4aa408
fld dword [esp + 0x24]
fsub dword [esp + 0x30]
push ecx
fstp dword [esp]
call fcn.004a6e40
fcomp dword [0x4d8420]
add esp, 4
fnstsw ax
test ah, 0x41
jne 0x4aa3e1
add word [esi + 0x28], 0x190
jmp 0x4aa408
fld dword [esp + 0x24]
fsub dword [esp + 0x30]
push ecx
fstp dword [esp]
call fcn.004a6e40
fcomp dword [0x4d8364]
add esp, 4
fnstsw ax
test ah, 0x41
jne 0x4aa408
add word [esi + 0x28], 0x384
mov ecx, dword [0x1177014]
mov eax, dword [esp + 0x14c]
cmp ebx, 5
mov edx, dword [ecx + eax*4]
mov dword [esi + 0x2c], edx
mov ecx, dword [0x1177014]
mov dword [ecx + eax*4], esi
jne 0x4aa441
mov eax, dword [0x1177030]
pop edi
inc eax
pop esi
mov dword [0x1177030], eax
pop ebp
xor eax, eax
pop ebx
add esp, 0x138
ret
inc dword [0x1177064]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x138
ret