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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push edi
push esi
push ebx
sub esp, 0x9c
mov edi, ecx
mov dword [esp + 0x64], edx
mov dword [esp + 0x60], eax
mov edx, dword [ebp + 0x20]
mov esi, dword [ebp + 0x28]
mov ebx, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x1c]
sub ecx, dword [ebp + 0x14]
inc ecx
mov eax, dword [ebp + 0x18]
sub eax, edi
inc eax
test ebx, ebx
jle 0x42a8f7
xor ebx, ebx
mov dword [esp + 0x30], ebx
xor ebx, ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x84], edi
mov esi, dword [esp + 0x30]
mov edi, dword [ebp + 0x2c]
mov eax, ebx
cdq
idiv edi
imul eax, ecx
sar eax, 8
mov dword [esi*4 + 0x789bc0], eax
add ebx, 0x10000
inc esi
cmp esi, edi
jl 0x42a8c9
mov eax, dword [esp + 0x28]
mov esi, dword [ebp + 0x28]
mov edx, dword [ebp + 0x20]
mov edi, dword [esp + 0x84]
test esi, esi
jle 0x42a92f
xor ebx, ebx
xor ecx, ecx
mov dword [esp + 0x84], edi
mov edi, eax
mov eax, ecx
cdq
idiv esi
imul eax, edi
sar eax, 8
mov dword [ebx*4 + 0x799cc0], eax
add ecx, 0x10000
inc ebx
cmp ebx, esi
jl 0x42a908
mov edx, dword [ebp + 0x20]
mov edi, dword [esp + 0x84]
movzx eax, byte [0x5a8160]
test eax, eax
jne 0x42aa6a
mov byte [0x5a8160], 1
xor ecx, ecx
fld qword [0x562410]
fld qword [0x562448]
fld qword [0x562418]
mov dword [esp + 0x50], ecx
fild dword [esp + 0x50]
fmul st(3)
fcom st(1)
fnstsw ax
sahf
ja 0x42a980
fld qword [0x562440]
fmul st(1)
fmul st(1)
fsubr st(2)
fld st(1)
fmul st(0)
fmulp st(2)
faddp st(1)
jmp 0x42a9a8
fld qword [0x562428]
fmul st(1)
fadd qword [0x562420]
fld qword [0x562430]
fmul st(2)
fmul st(2)
fsubp st(1)
fld qword [0x562438]
fmul st(2)
fmul st(2)
fmulp st(2)
faddp st(1)
fmul st(2)
fnstcw word [esp + 8]
movzx eax, word [esp + 8]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp dword [ecx*4 + 0x5a6840]
fldcw word [esp + 8]
inc ecx
cmp ecx, 0x200
jle 0x42a959
fstp st(0)
fstp st(0)
fstp st(0)
xor eax, eax
mov ebx, 0xffffff00
mov ecx, 0x100
mov dword [esp + 0x20], ecx
mov ecx, 0x200
mov dword [esp + 0x80], ecx
xor ecx, ecx
mov dword [esp + 0x84], edi
mov esi, eax
mov eax, ebx
cdq
mov edi, ebx
xor edi, edx
sub edi, edx
mov dword [ecx + 0x5a7060], edi
mov eax, esi
cdq
mov edi, esi
xor edi, edx
sub edi, edx
mov dword [ecx + 0x5a7460], edi
mov edi, dword [esp + 0x20]
mov eax, edi
cdq
mov eax, edi
xor eax, edx
sub eax, edx
mov dword [ecx + 0x5a7860], eax
mov eax, dword [esp + 0x80]
cdq
xor eax, edx
sub eax, edx
mov dword [ecx + 0x5a7c60], eax
dec esi
dec ebx
dec edi
mov dword [esp + 0x20], edi
dec dword [esp + 0x80]
add ecx, 4
cmp ecx, 0x3fc
jle 0x42aa01
mov esi, dword [ebp + 0x28]
mov edx, dword [ebp + 0x20]
mov edi, dword [esp + 0x84]
mov eax, dword [ebp + 0x2c]
mov dword [esp + 0x18], eax
test eax, eax
jle 0x42af7e
xor eax, eax
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x84], edi
mov ecx, dword [esp + 0x28]
mov edi, dword [ebp + 0x2c]
mov ebx, dword [ebp + 0x24]
mov esi, dword [ebp + 0x14]
mov edx, dword [eax*4 + 0x789bc0]
sar edx, 8
add edx, esi
test edx, edx
jge 0x42aaa8
lea ecx, [eax + 1]
cmp edx, ebx
jge 0x42af64
inc eax
cmp eax, edi
jl 0x42aa95
mov dword [esp + 0x28], ecx
mov esi, dword [ebp + 0x28]
mov edx, dword [ebp + 0x20]
mov edi, dword [esp + 0x84]
mov dword [esp + 0x34], esi
test esi, esi
jle 0x42af5d
xor eax, eax
xor ecx, ecx
mov ebx, dword [ecx*4 + 0x799cc0]
sar ebx, 8
add ebx, edi
test ebx, ebx
jge 0x42aae9
lea eax, [ecx + 1]
cmp ebx, edx
jge 0x42af54
inc ecx
cmp ecx, esi
jl 0x42aad6
mov ebx, dword [esp + 0x28]
test ebx, ebx
jle 0x42ab49
xor ebx, ebx
mov dword [esp + 0x30], ebx
lea ebx, [esi + esi]
add ebx, ebx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x84], edi
mov esi, ecx
mov edi, dword [esp + 0x30]
push ebx
push esi
call dword [0x5a3440]
add esp, 8
add esi, ebx
inc edi
mov eax, dword [esp + 0x28]
cmp edi, eax
jl 0x42ab22
mov eax, dword [esp + 0x14]
mov esi, dword [ebp + 0x28]
mov edx, dword [ebp + 0x20]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x38], ebx
mov ecx, dword [ebp + 0x2c]
cmp ebx, ecx
jge 0x42aba3
lea ecx, [esi + esi]
add ecx, ecx
mov dword [esp + 0x24], ecx
imul ebx, ecx
add ebx, dword [esp + 0x60]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x84], edi
mov esi, ecx
mov edi, dword [esp + 0x38]
push esi
push ebx
call dword [0x5a3440]
add esp, 8
add ebx, esi
inc edi
mov eax, dword [ebp + 0x2c]
cmp edi, eax
jl 0x42ab7d
mov eax, dword [esp + 0x14]
mov esi, dword [ebp + 0x28]
mov edx, dword [ebp + 0x20]
mov edi, dword [esp + 0x84]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x28]
cmp ebx, ecx
jge 0x42af47
mov dword [esp + 0x84], edi
mov dword [esp + 0x14], eax
lea ecx, [esi + esi]
add ecx, ecx
mov dword [esp + 0x1c], ecx
lea edi, [eax + eax]
add edi, edi
mov dword [esp + 0x20], edi
mov ecx, dword [esp + 0x34]
lea ebx, [ecx + ecx]
add ebx, ebx
mov eax, dword [esp + 0x60]
add ebx, eax
sub esi, ecx
add esi, esi
add esi, esi
mov dword [esp + 0x24], esi
lea ecx, [edx + edx]
add ecx, ecx
mov edx, dword [ebp + 0x14]
imul edx, ecx
mov dword [esp + 0x30], edx
mov edx, dword [ebp + 0x24]
imul edx, ecx
dec edx
mov dword [esp + 0x94], edx
mov edi, dword [esp + 0x28]
mov esi, edi
mov edx, dword [esp + 0x1c]
imul esi, edx
add esi, eax
mov dword [esp + 0x38], esi
imul edi, edx
add edi, ebx
mov dword [esp + 0x2c], edi
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x94]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x84], edi
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
push eax
mov edx, dword [esp + 0x3c]
push edx
call dword [0x5a3440]
mov eax, dword [esp + 0x2c]
push eax
push ebx
call dword [0x5a3440]
add esp, 0x10
mov ecx, dword [esi*4 + 0x789bc0]
movzx eax, cl
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
cmp edi, edx
jge 0x42af30
sar ecx, 8
imul ecx, dword [esp + 0x88]
add ecx, dword [esp + 0x30]
fld qword [0x562410]
fld qword [0x562448]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], edi
mov dword [esp + 0x60], eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], esi
fstp st(0)
fstp st(0)
mov ebx, dword [esp + 0x40]
mov edi, dword [ebx*4 + 0x799cc0]
mov ebx, edi
and ebx, 0xff
xor esi, esi
xor ecx, ecx
mov dword [esp + 0x6c], ecx
xor eax, eax
mov dword [esp + 0x70], eax
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x68], edx
mov eax, 0xfffffffe
sar edi, 8
mov edx, dword [esp + 0x88]
lea edx, [edx + edx]
neg edx
add edx, dword [esp + 0x3c]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x78], esi
mov dword [esp + 0x74], ebx
mov ecx, dword [esp + 0x84]
lea esi, [ecx + edi - 2]
mov ebx, 0xfffffe00
mov dword [esp + 0x98], edx
mov dword [esp + 0x8c], edi
mov dword [esp + 0x90], eax
lea edi, [esi + esi]
add edi, edi
add edi, dword [esp + 0x98]
mov eax, dword [esp + 0x94]
cmp edi, eax
ja 0x42ae32
mov eax, ebx
sub eax, dword [esp + 0x74]
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x50], eax
fild dword [esp + 0x50]
fld qword [0x562410]
fmul st(1), st(0)
mov eax, dword [esp + 0x90]
shl eax, 8
sub eax, dword [esp + 0x60]
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x50], eax
fild dword [esp + 0x50]
fmulp st(1)
fstp qword [esp + 0x58]
call fcn.0042af90
fmul qword [0x562448]
fnstcw word [esp + 8]
movzx eax, word [esp + 8]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp dword [esp + 0x48]
fldcw word [esp + 8]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x80], eax
fld qword [esp + 0x58]
call fcn.0042af90
fmul qword [0x562448]
fnstcw word [esp + 8]
movzx eax, word [esp + 8]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp dword [esp + 0x48]
fldcw word [esp + 8]
mov edx, dword [esp + 0x48]
imul edx, dword [esp + 0x80]
add dword [esp + 0x78], edx
mov eax, dword [esp + 0x64]
movzx ecx, byte [edi + eax]
imul ecx, edx
add dword [esp + 0x7c], ecx
movzx ecx, byte [edi + eax + 1]
imul ecx, edx
add dword [esp + 0x70], ecx
movzx ecx, byte [edi + eax + 2]
imul ecx, edx
add dword [esp + 0x6c], ecx
movzx edi, byte [edi + eax + 3]
imul edi, edx
add dword [esp + 0x68], edi
inc esi
add ebx, 0x100
cmp ebx, 0x200
jle 0x42ad37
mov edx, dword [esp + 0x98]
mov edi, dword [esp + 0x8c]
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x84]
add edx, dword [esp + 0x88]
inc eax
cmp eax, 2
jle 0x42ad19
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x78]
test esi, esi
jne 0x42ae83
mov esi, 1
mov eax, ecx
cdq
idiv esi
mov ecx, eax
mov eax, dword [esp + 0x70]
cdq
idiv esi
mov ebx, eax
mov eax, dword [esp + 0x6c]
cdq
idiv esi
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x68]
cdq
idiv esi
test ecx, ecx
jge 0x42aeab
xor ecx, ecx
test ebx, ebx
jge 0x42aeb1
xor ebx, ebx
mov edx, dword [esp + 0x70]
test edx, edx
jge 0x42aebf
xor edx, edx
mov dword [esp + 0x70], edx
test eax, eax
jge 0x42aec5
xor eax, eax
cmp ecx, 0xff
jle 0x42aed2
mov ecx, 0xff
cmp ebx, 0xff
jle 0x42aedf
mov ebx, 0xff
cmp edx, 0xff
jle 0x42aef0
mov edx, 0xff
mov dword [esp + 0x70], edx
cmp eax, 0xff
jle 0x42aefc
mov eax, 0xff
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x40]
mov byte [edx + esi*4], cl
mov byte [edx + esi*4 + 1], bl
mov ecx, dword [esp + 0x70]
mov byte [edx + esi*4 + 2], cl
mov byte [edx + esi*4 + 3], al
inc esi
mov dword [esp + 0x40], esi
mov eax, dword [esp + 0x34]
cmp esi, eax
jl 0x42acc5
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
add dword [esp + 0x38], eax
add ebx, eax
inc esi
mov edx, dword [esp + 0x18]
cmp esi, edx
jl 0x42ac59
add esp, 0x9c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x34], ecx
jmp 0x42aaf6
xor eax, eax
jmp 0x42aaf6
mov dword [esp + 0x28], ecx
mov esi, dword [ebp + 0x28]
mov edx, dword [ebp + 0x20]
mov edi, dword [esp + 0x84]
mov dword [esp + 0x18], eax
jmp 0x42aac6
xor eax, eax
mov dword [esp + 0x28], eax
jmp 0x42aac6