Function at 0x4bce30
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.004ba230
add esp, 4
test eax, eax
je 0x4bd707
mov edi, dword [esp + 0x150]
push edi
call fcn.004ba230
add esp, 4
test eax, eax
je 0x4bd707
push ebp
call fcn.004ba180
add esp, 4
test eax, eax
jne 0x4bd707
push edi
call fcn.004ba180
add esp, 4
test eax, eax
jne 0x4bd707
mov eax, dword [0x122f7b8]
mov ecx, dword [0x12284e0]
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.004ba150
fadd st(0), st(0)
push esi
fstp dword [esp + 0x60]
call fcn.004ba130
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 0x4bd707
fld dword [esi]
fsub dword [esp + 0x58]
fcomp dword [ecx]
fnstsw ax
test ah, 0x41
je 0x4bd707
inc edx
add ecx, 4
add esi, 4
cmp edx, 2
jl 0x4bcee1
fld dword [esp + 0x50]
fadd dword [ebp + 0x20]
fcomp dword [edi + 0x14]
fnstsw ax
test ah, 1
jne 0x4bd707
mov eax, dword [ebp + 4]
xor esi, esi
test eax, eax
mov dword [esp + 0x4c], 0x497423f0
mov dword [esp + 0x48], esi
jle 0x4bd105
mov ecx, dword [0x122f7b8]
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 0x4bd0f5
mov eax, dword [edi + 4]
mov dword [esp + 0x5c], 0
test eax, eax
jle 0x4bd0f5
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 0x4bd0dd
mov eax, dword [ebx + 8]
xor ebp, ebp
test eax, eax
mov dword [esp + 0x50], ebp
jle 0x4bd0d9
jmp 0x4bcfcf
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 0x4bd0c1
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.004bc300
mov eax, dword [esi + 8]
mov ecx, dword [0x122f7b8]
fstp dword [esp + 0x78]
add esp, 0x2c
inc edi
cmp edi, eax
jl 0x4bcff8
mov ebp, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
inc ebp
mov dword [esp + 0x50], ebp
cmp ebp, dword [eax + 8]
jl 0x4bcfcb
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 0x4bcf89
mov esi, dword [esp + 0x48]
mov eax, dword [ebp + 4]
inc esi
cmp esi, eax
mov dword [esp + 0x48], esi
jl 0x4bcf49
lea ecx, [esp + 0x1c]
lea edx, [esp + 0xbc]
push ecx
lea eax, [esp + 0x20]
push edx
push eax
call fcn.004bc2b0
lea ecx, [esp + 0x34]
lea edx, [esp + 0xd4]
push ecx
lea eax, [esp + 0x38]
push edx
push eax
call fcn.004bc2b0
fld dword [esp + 0x64]
fcomp dword [0x4e0488]
add esp, 0x18
fnstsw ax
test ah, 0x41
jne 0x4bd707
fld dword [esp + 0x4c]
fcomp dword [esp + 0x58]
fnstsw ax
test ah, 1
je 0x4bd707
lea ecx, [esp + 0x34]
lea edx, [esp + 0x28]
push ecx
lea eax, [esp + 0x20]
push edx
push eax
push 0
call fcn.004b97f0
add esp, 0x10
test eax, eax
je 0x4bd193
fld dword [esp + 0x34]
fmul qword [0x4e15b8]
mov ebx, 7
fstp dword [esp + 0x34]
jmp 0x4bd231
fld dword [esp + 0x4c]
fcomp dword [0x4e0850]
fnstsw ax
test ah, 0x41
je 0x4bd1ca
fld dword [esp + 0x24]
fsub dword [esp + 0x30]
fabs
fcomp qword [0x4e11a0]
fnstsw ax
test ah, 1
je 0x4bd1ca
mov dword [esp + 0x34], 0x43c80000
mov ebx, 7
jmp 0x4bd231
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.004b97f0
add esp, 0x10
test eax, eax
je 0x4bd707
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.0042bfc0
fcomp dword [0x4e0444]
add esp, 4
fnstsw ax
test ah, 1
jne 0x4bd707
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.0042bd60
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 [0x4e0588]
fstp dword [esp + 0x84]
call fcn.004c3280
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 0x4bd707
fld dword [esp + 0x9c]
fcomp dword [0x4e03d0]
fnstsw ax
test ah, 1
je 0x4bd34e
mov eax, dword [esp + 0xb8]
lea edx, [eax + eax*4]
mov eax, dword [0x122f7b8]
mov ecx, dword [eax + 0xac]
fld dword [ecx + edx*4 + 8]
lea eax, [ecx + edx*4]
fcomp qword [0x4e10f8]
fnstsw ax
test ah, 1
jne 0x4bd34e
lea edx, [esp + 0xa0]
push edx
call fcn.004c2490
add esp, 4
test al, 8
jne 0x4bd34e
fld dword [esp + 0x44]
fsub dword [esp + 0xa8]
fcomp dword [0x12284dc]
fnstsw ax
test ah, 0x41
jne 0x4bd707
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 [0x4e0588]
fstp dword [esp + 0x80]
call fcn.004c3280
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 0x4bd707
fld dword [esp + 0x9c]
fcomp dword [0x4e03d0]
fnstsw ax
test ah, 1
je 0x4bd438
mov eax, dword [esp + 0xb8]
mov edx, dword [0x122f7b8]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xac]
fld dword [eax + ecx*4 + 8]
lea eax, [eax + ecx*4]
fcomp qword [0x4e10f8]
fnstsw ax
test ah, 1
jne 0x4bd438
lea ecx, [esp + 0xa0]
push ecx
call fcn.004c2490
add esp, 4
test al, 0x18
jne 0x4bd438
fld dword [esp + 0x44]
fsub dword [esp + 0xa8]
fcomp dword [0x12284dc]
fnstsw ax
test ah, 0x41
jne 0x4bd707
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.0042bd60
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 0x4bd4bd
mov eax, dword [0x12284e0]
mov dword [esp + 0x88], eax
jmp 0x4bd4c8
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.004b87d0
mov eax, dword [esp + 0x154]
add esp, 0x34
cmp eax, 0x1e
jge 0x4bd707
test byte [esp + 0x114], 0x10
jne 0x4bd707
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 [0x4e0490]
fstp dword [esp + 0x48]
call fcn.004c3040
mov edi, dword [esp + 0x154]
add esp, 4
cmp eax, edi
je 0x4bd590
add esi, 8
cmp esi, 0x20
mov dword [esp + 0x48], esi
jle 0x4bd524
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x138
ret
cmp esi, 0x20
jg 0x4bd707
call fcn.004b9c00
mov esi, eax
cmp esi, ebp
je 0x4bd707
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 0x4bd63e
lea eax, [esp + 0x10]
push eax
call fcn.0042bfc0
fcomp dword [esp + 0x3c]
add esp, 4
fnstsw ax
test ah, 1
je 0x4bd63e
fld dword [esp + 0x38]
fmul dword [0x4e1510]
fdiv dword [0x12284a8]
fadd dword [0x4e154c]
jmp 0x4bd662
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x28]
push ecx
push edx
call fcn.0042c650
fmul dword [0x4e15b4]
add esp, 8
fdiv dword [0x12284b8]
fadd dword [0x4e156c]
call fcn.004cb970
push edi
mov word [esi + 0x28], ax
call fcn.004ba270
add esp, 4
test eax, eax
jne 0x4bd6c8
fld dword [esp + 0x24]
fsub dword [esp + 0x30]
push ecx
fstp dword [esp]
call fcn.004ba100
fcomp dword [0x4e1598]
add esp, 4
fnstsw ax
test ah, 0x41
jne 0x4bd6a1
add word [esi + 0x28], 0x190
jmp 0x4bd6c8
fld dword [esp + 0x24]
fsub dword [esp + 0x30]
push ecx
fstp dword [esp]
call fcn.004ba100
fcomp dword [0x4e1520]
add esp, 4
fnstsw ax
test ah, 0x41
jne 0x4bd6c8
add word [esi + 0x28], 0x384
mov ecx, dword [0x1228434]
mov eax, dword [esp + 0x14c]
cmp ebx, 5
mov edx, dword [ecx + eax*4]
mov dword [esi + 0x2c], edx
mov ecx, dword [0x1228434]
mov dword [ecx + eax*4], esi
jne 0x4bd701
mov eax, dword [0x1228450]
pop edi
inc eax
pop esi
mov dword [0x1228450], eax
pop ebp
xor eax, eax
pop ebx
add esp, 0x138
ret
inc dword [0x1228484]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x138
ret