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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x60
mov ebx, ecx
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x14], 0x454070
mov eax, dword fs:[0]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x88]
cmp eax, dword [edi + 0x8c]
je 0x4533a6
mov dword [ebp - 0x40], 0
push 0x7c
call fcn.004a880e
add esp, 4
mov esi, eax
mov dword [eax], vtable.std::_Associated_state_int_.0
mov dword [eax + 4], 1
add eax, 0xc
push eax
call fcn.004ac97c
add esp, 4
lea eax, [esi + 0x14]
push 2
push eax
call fcn.004aed7b
add esp, 8
lea eax, [esi + 0x44]
push eax
call fcn.004ae5fd
add esp, 4
mov byte [esi + 0x6c], 0
mov dword [esi + 0x70], 0
mov dword [esi + 0x73], 0
mov dword [esi + 0x78], 0
mov dword [ebp - 0x5c], esi
mov byte [ebp - 0x58], 0
mov byte [ebp - 0x54], 0
mov ecx, dword [edi + 0x8c]
sub ecx, dword [edi + 0x88]
mov dword [ebp - 0x3c], ebx
mov eax, dword [ebx + 4]
sar ecx, 4
imul ecx, ecx, 0xb6db6db7
cmp eax, ecx
jae 0x4533c2
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
cmp ecx, 0x40000000
jae 0x4539d7
lea eax, [ecx*4]
mov dword [ebp - 0x20], ecx
cmp ecx, 0x400
jb 0x453524
add eax, 0x23
mov dword [ebp - 0x10], 3
push eax
call fcn.004a880e
add esp, 4
mov esi, eax
add esi, 0x23
and esi, 0xffffffe0
mov dword [esi - 4], eax
jmp 0x453536
mov ecx, dword [ebp + 0x20]
test ecx, ecx
js 0x4538b8
mov eax, dword [ebx + 8]
shr eax, 1
imul eax, ecx
add eax, eax
add eax, dword [ebx]
jmp 0x4538ba
movd xmm0, eax
movq xmm1, qword [0x4e90e0]
por xmm0, xmm1
subsd xmm0, xmm1
cvtsd2ss xmm2, xmm0
movd xmm0, ecx
por xmm0, xmm1
subsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
divss xmm2, xmm0
movss dword [ebp - 0x4c], xmm2
xchg dword [ebp - 0x40], ecx
mov eax, dword [edi + 0x88]
mov ecx, dword [edi + 0x8c]
mov dword [ebp - 0x38], ecx
lea ecx, [edi + 4]
mov dword [ebp - 0x48], ecx
lea ecx, [edi + 0x70]
mov dword [ebp - 0x44], ecx
movss xmm0, dword [0x4e90e8]
movss dword [ebp - 0x30], xmm0
cmp eax, dword [ebp - 0x38]
je 0x453843
nop word [eax + eax]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x10], 1
push 0x40
call fcn.004a880e
add esp, 4
mov edx, eax
mov eax, dword [ebp + 8]
mov ecx, eax
mov eax, dword [eax]
mov dword [edx + 0x18], eax
mov eax, dword [ebp - 0x48]
mov dword [edx + 0x1c], eax
mov eax, dword [ebp - 0x44]
mov dword [edx + 0x24], eax
mov eax, dword [ecx + 0x94]
mov dword [edx + 0x30], eax
mov eax, dword [ebp + 0x14]
mov dword [edx + 8], eax
mov eax, dword [ebp + 0x18]
mov dword [edx + 0xc], eax
mov eax, dword [ebp + 0xc]
mov dword [edx + 0x10], eax
mov eax, dword [ebp + 0x10]
mov dword [edx + 0x14], eax
mov eax, dword [ebp + 0x1c]
mov dword [edx + 0x28], eax
mov dword [edx + 0x2c], fcn.00453b60
mov eax, dword [ebp - 0x3c]
mov dword [edx + 0x34], eax
lea eax, [ebp - 0x40]
mov dword [edx + 0x38], eax
movss xmm1, dword [ebp - 0x30]
movaps xmm0, xmm1
movss xmm2, dword [0x4e90ec]
subss xmm0, xmm2
cvttss2si eax, xmm0
lea ecx, [ebp - 0x5c]
mov dword [edx + 0x3c], ecx
xor eax, 0x80000000
cvttss2si ecx, xmm1
ucomiss xmm1, xmm2
cmovae ecx, eax
mov dword [edx], ecx
addss xmm1, dword [ebp - 0x4c]
cvttss2si eax, xmm1
movaps xmm0, xmm1
subss xmm0, xmm2
cvttss2si ecx, xmm0
xor ecx, 0x80000000
movss dword [ebp - 0x30], xmm1
ucomiss xmm1, xmm2
cmovb ecx, eax
mov dword [edx + 4], ecx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + 0x68]
mov dword [edx + 0x20], eax
add ecx, 8
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x34], edx
call fcn.0044cd20
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x50]
push eax
call fcn.00449500
mov eax, dword [ebp - 0x20]
add eax, 0x70
cmp eax, dword [ebp - 0x38]
jne 0x453430
jmp 0x453843
mov dword [ebp - 0x10], 3
push eax
call fcn.004a880e
add esp, 4
mov esi, eax
mov edi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
sub eax, edi
push eax
push edi
push esi
call fcn.004c4690
add esp, 0xc
test edi, edi
je 0x453579
mov eax, dword [ebp - 0x24]
sub eax, edi
cmp eax, 0x1000
jb 0x45356f
mov ecx, dword [edi - 4]
add edi, 0xfffffffc
sub edi, ecx
cmp edi, 0x20
jae 0x4539e3
add eax, 0x23
mov edi, ecx
push eax
push edi
call fcn.004a8843
add esp, 8
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x28], esi
mov eax, dword [ebp - 0x20]
lea eax, [esi + eax*4]
mov dword [ebp - 0x24], eax
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x8c]
sub eax, dword [esi + 0x88]
sar eax, 4
imul eax, eax, 0xb6db6db7
movd xmm0, eax
movq xmm1, qword [0x4e90e0]
por xmm0, xmm1
subsd xmm0, xmm1
cvtsd2ss xmm2, xmm0
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ecx + 4]
movss xmm0, dword [ecx + 4]
orpd xmm0, xmm1
subsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
divss xmm2, xmm0
movss dword [ebp - 0x64], xmm2
mov edi, dword [ebp + 0x14]
mov esi, dword [ebp + 0xc]
cmp esi, edi
setae cl
mov ebx, dword [ebp + 0x18]
cmp esi, ebx
setb dl
and dl, cl
not edi
add edi, ebx
movzx ecx, dl
sub edi, ecx
mov dword [ebp - 0x60], edi
mov edx, dword [ebp + 8]
lea ecx, [edx + 4]
mov dword [ebp - 0x48], ecx
lea ecx, [edx + 0x70]
mov dword [ebp - 0x44], ecx
movss xmm0, dword [0x4e90e8]
xor esi, esi
jmp 0x45362e
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 4]
mov esi, dword [ebp - 0x38]
movss xmm0, dword [ebp - 0x68]
cmp esi, eax
jae 0x4537a5
movss xmm3, dword [ebp - 0x64]
addss xmm3, xmm0
cvttss2si eax, xmm3
movaps xmm1, xmm3
movss xmm2, dword [0x4e90ec]
subss xmm1, xmm2
cvttss2si ecx, xmm1
xor ecx, 0x80000000
movss dword [ebp - 0x68], xmm3
ucomiss xmm3, xmm2
cmovb ecx, eax
movaps xmm1, xmm0
subss xmm1, xmm2
cvttss2si eax, xmm1
xor eax, 0x80000000
cvttss2si edx, xmm0
ucomiss xmm0, xmm2
cmovae edx, eax
sub ecx, edx
mov eax, dword [ebp - 0x60]
add eax, ecx
xor edx, edx
div ecx
mov ecx, eax
cmp eax, 0xa
mov eax, 0xa
cmovbe ecx, eax
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x4c], esi
lea eax, [esi + 1]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + 0x14]
jmp 0x4536c3
mov dword [edx], eax
add dword [ebp - 0x28], 4
xor eax, eax
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp + 0xc]
sete al
add eax, ecx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp + 0x18]
jae 0x453620
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x20]
add eax, edx
mov ecx, dword [ebp + 0xc]
cmp eax, ecx
seta byte [ebp - 0x34]
cmp edx, ecx
setbe byte [ebp - 0x50]
mov dword [ebp - 0x10], 3
push 0x40
call fcn.004a880e
add esp, 4
movzx ecx, byte [ebp - 0x50]
and cl, byte [ebp - 0x34]
movzx ecx, cl
add ecx, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x20]
lea edx, [ecx + ebx]
mov edi, dword [ebp + 0x18]
mov esi, edi
sub esi, ebx
cmp edx, edi
cmovbe esi, ecx
mov ecx, ebx
sub ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x1c]
imul ecx, edx
add ecx, ecx
mov edx, dword [ebp + 8]
add ecx, dword [edx]
mov edi, dword [ebp - 0x48]
mov dword [eax + 0x1c], edi
mov edi, dword [ebp - 0x44]
mov dword [eax + 0x24], edi
mov edx, dword [edx + 0x94]
mov dword [eax + 0x30], edx
mov edx, dword [ebp + 0xc]
mov dword [eax + 0x10], edx
mov edx, dword [ebp + 0x10]
mov dword [eax + 0x14], edx
mov edx, dword [ebp + 0x1c]
mov dword [eax + 0x28], edx
mov dword [eax + 0x2c], fcn.00453b60
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x34], edx
lea edx, [ebp - 0x40]
mov dword [eax + 0x38], edx
lea edx, [ebp - 0x5c]
mov dword [eax + 0x3c], edx
mov edx, dword [ebp - 0x4c]
mov dword [eax], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 4], edx
mov dword [eax + 8], ebx
add esi, ebx
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x20], esi
mov dword [eax + 0xc], esi
mov dword [eax + 0x18], ecx
mov edx, dword [ebp - 0x28]
cmp edx, dword [ebp - 0x24]
jne 0x4536b0
lea ecx, [ebp - 0x2c]
lea eax, [ebp - 0x6c]
push eax
push edx
call fcn.004241d0
jmp 0x4536b6
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x2c]
sar eax, 2
xchg dword [ebp - 0x40], eax
xor edx, edx
nop word cs:[eax + eax]
nop dword [eax]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
sub ecx, eax
sar ecx, 2
cmp edx, ecx
jae 0x453812
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x88]
mov esi, dword [eax + edx*4]
mov dword [ebp - 0x34], edx
imul eax, edx, 0x70
mov edx, dword [ecx + eax + 0x68]
mov dword [ebp - 0x20], esi
mov dword [esi + 0x20], edx
add ecx, eax
add ecx, 8
mov dword [ebp - 0x10], 3
mov dword [ebp - 0x30], ecx
call fcn.0044cd20
mov ecx, dword [ebp - 0x30]
push dword [ebp - 0x20]
call fcn.00449500
mov edx, dword [ebp - 0x34]
add edx, 1
jmp 0x4537c0
test eax, eax
je 0x453843
mov ecx, dword [ebp - 0x24]
sub ecx, eax
cmp ecx, 0x1000
jb 0x453839
mov edx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, edx
cmp eax, 0x20
jae 0x4539e3
add ecx, 0x23
mov eax, edx
push ecx
push eax
call fcn.004a8843
add esp, 8
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x453953
cmp byte [ebp - 0x58], 0
je 0x45385e
cmp byte [eax + 0x6c], 0
jne 0x453953
cmp byte [ebp - 0x54], 0
jne 0x453995
mov byte [ebp - 0x54], 1
lock add dword [eax + 4], 1
mov ecx, dword [ebp - 0x5c]
test ecx, ecx
mov dword [ebp - 0x20], ecx
je 0x453911
cmp byte [ecx + 0x6c], 0
jne 0x453911
mov eax, dword [ecx]
mov eax, dword [eax + 4]
mov dword [ebp - 0x10], 2
call eax
mov edx, dword [ebp - 0x20]
lock sub dword [edx + 4], 1
jne 0x4538f6
mov ecx, dword [edx + 0x78]
test ecx, ecx
je 0x4538ee
mov eax, dword [ecx]
mov eax, dword [eax]
mov dword [ebp - 0x10], 0
push edx
call eax
jmp 0x4538f6
xor eax, eax
mov edi, dword [ebp + 8]
lea edx, [edi + 4]
lea esi, [edi + 0x70]
mov ecx, ebx
push dword [edi + 0x94]
push eax
push dword [edi + 0x68]
push edx
push esi
push dword [ebp + 0x1c]
push dword [edi]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebx + 4]
push 0
call fcn.00453b60
jmp 0x4538fe
mov eax, dword [edx]
mov ecx, edx
push 1
call dword [eax]
lea ecx, [ebp - 0x5c]
call fcn.0042b930
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
add esp, 0x60
pop esi
pop edi
pop ebx
pop ebp
ret 0x1c
mov eax, dword [0x50d60c]
mov ecx, dword [0x50d8c0]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4539e8
mov dword [ebp - 0x2c], 4
mov dword [ebp - 0x28], 0x5068c4
mov dword [ebp - 0x10], 2
lea eax, [ebp - 0x2c]
push eax
call fcn.004ac4d0
add esp, 4
mov eax, dword [0x50d60c]
mov ecx, dword [0x50d8c0]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x453a28
mov dword [ebp - 0x2c], 4
mov dword [ebp - 0x28], 0x5068c4
mov dword [ebp - 0x10], 1
lea eax, [ebp - 0x2c]
push eax
call fcn.004ac4d0
add esp, 4
mov eax, dword [0x50d60c]
mov ecx, dword [0x50d8c0]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x453a68
mov dword [ebp - 0x2c], 2
mov dword [ebp - 0x28], 0x5068c4
mov dword [ebp - 0x10], 1
lea eax, [ebp - 0x2c]
push eax
call fcn.004ac4d0
add esp, 4
mov dword [ebp - 0x10], 3
call fcn.00417760
call fcn.004cc578
push 0x50d60c
call fcn.004a88b7
add esp, 4
cmp dword [0x50d60c], 0xffffffff
jne 0x453932
push method.IPAR2ProcBackend.virtual_52
call fcn.004a8b65
add esp, 4
push 0x50d60c
call fcn.004a8909
add esp, 4
mov dword [ebp - 0x10], 2
jmp 0x453932
push 0x50d60c
call fcn.004a88b7
add esp, 4
cmp dword [0x50d60c], 0xffffffff
jne 0x453974
push method.IPAR2ProcBackend.virtual_52
call fcn.004a8b65
add esp, 4
push 0x50d60c
call fcn.004a8909
add esp, 4
mov dword [ebp - 0x10], 1
jmp 0x453974
push 0x50d60c
call fcn.004a88b7
add esp, 4
cmp dword [0x50d60c], 0xffffffff
jne 0x4539b6
push method.IPAR2ProcBackend.virtual_52
call fcn.004a8b65
add esp, 4
push 0x50d60c
call fcn.004a8909
add esp, 4
mov dword [ebp - 0x10], 1
jmp 0x4539b6