Function at 0x45dc30
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x10
wait
fnstcw word [ebp - 8]
mov ax, word [ebp - 8]
xor ecx, ecx
test al, 1
je 0x45d947
push 0x10
pop ecx
test al, 4
je 0x45d94e
or ecx, 8
test al, 8
je 0x45d955
or ecx, 4
test al, 0x10
je 0x45d95c
or ecx, 2
test al, 0x20
je 0x45d963
or ecx, 1
test al, 2
je 0x45d96d
or ecx, 0x80000
push ebx
push esi
movzx esi, ax
mov ebx, 0xc00
mov edx, esi
push edi
mov edi, 0x200
and edx, ebx
je 0x45d9a9
cmp edx, 0x400
je 0x45d9a3
cmp edx, 0x800
je 0x45d99f
cmp edx, ebx
jne 0x45d9a9
or ecx, 0x300
jmp 0x45d9a9
or ecx, edi
jmp 0x45d9a9
or ecx, 0x100
and esi, 0x300
je 0x45d9bd
cmp esi, edi
jne 0x45d9c3
or ecx, 0x10000
jmp 0x45d9c3
or ecx, 0x20000
mov edx, 0x1000
test dx, ax
je 0x45d9d3
or ecx, 0x40000
mov edi, dword [ebp + 0xc]
mov esi, edi
mov eax, dword [ebp + 8]
not esi
and esi, ecx
and eax, edi
or esi, eax
cmp esi, ecx
je 0x45da91
push esi
call 0x45dc30
pop ecx
mov word [ebp - 4], ax
fldcw word [ebp - 4]
wait
fnstcw word [ebp - 4]
mov ax, word [ebp - 4]
xor esi, esi
test al, 1
je 0x45da0a
push 0x10
pop esi
test al, 4
je 0x45da11
or esi, 8
test al, 8
je 0x45da18
or esi, 4
test al, 0x10
je 0x45da1f
or esi, 2
test al, 0x20
je 0x45da26
or esi, 1
test al, 2
je 0x45da30
or esi, 0x80000
movzx edx, ax
mov ecx, edx
and ecx, ebx
je 0x45da63
cmp ecx, 0x400
je 0x45da5d
cmp ecx, 0x800
je 0x45da55
cmp ecx, ebx
jne 0x45da63
or esi, 0x300
jmp 0x45da63
or esi, 0x200
jmp 0x45da63
or esi, 0x100
and edx, 0x300
je 0x45da7b
cmp edx, 0x200
jne 0x45da81
or esi, 0x10000
jmp 0x45da81
or esi, 0x20000
mov edx, 0x1000
test dx, ax
je 0x45da91
or esi, 0x40000
cmp dword [0x485ec8], 1
jl 0x45dc27
and edi, 0x308031f
stmxcsr dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
xor ecx, ecx
test al, al
jns 0x45dab4
push 0x10
pop ecx
test eax, 0x200
je 0x45dabe
or ecx, 8
test eax, 0x400
je 0x45dac8
or ecx, 4
test eax, 0x800
je 0x45dad2
or ecx, 2
test edx, eax
je 0x45dad9
or ecx, 1
test eax, 0x100
je 0x45dae6
or ecx, 0x80000
mov edx, eax
mov ebx, 0x6000
and edx, ebx
je 0x45db1b
cmp edx, 0x2000
je 0x45db15
cmp edx, 0x4000
je 0x45db0d
cmp edx, ebx
jne 0x45db1b
or ecx, 0x300
jmp 0x45db1b
or ecx, 0x200
jmp 0x45db1b
or ecx, 0x100
push 0x40
and eax, 0x8040
pop ebx
sub eax, ebx
je 0x45db42
sub eax, 0x7fc0
je 0x45db3a
sub eax, ebx
jne 0x45db48
or ecx, 0x1000000
jmp 0x45db48
or ecx, 0x3000000
jmp 0x45db48
or ecx, 0x2000000
mov eax, edi
and edi, dword [ebp + 8]
not eax
and eax, ecx
or eax, edi
cmp eax, ecx
je 0x45dc10
push eax
call fcn.0045d7a5
push eax
mov dword [ebp - 0xc], eax
call fcn.0045b145
pop ecx
pop ecx
stmxcsr dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
xor ecx, ecx
test al, al
jns 0x45db7c
push 0x10
pop ecx
test eax, 0x200
je 0x45db86
or ecx, 8
test eax, 0x400
je 0x45db90
or ecx, 4
test eax, 0x800
je 0x45db9a
or ecx, 2
test eax, 0x1000
je 0x45dba4
or ecx, 1
test eax, 0x100
je 0x45dbb1
or ecx, 0x80000
add byte [ebx + 0x6000bfd0], cl
add byte [eax], al
mov edx, eax
mov edi, 0x6000
and edx, edi
je 0x45dbe6
cmp edx, 0x2000
je 0x45dbe0
cmp edx, 0x4000
je 0x45dbd8
cmp edx, edi
jne 0x45dbe6
or ecx, 0x300
jmp 0x45dbe6
or ecx, 0x200
jmp 0x45dbe6
or ecx, 0x100
and eax, 0x8040
sub eax, ebx
je 0x45dc0a
sub eax, 0x7fc0
je 0x45dc02
sub eax, ebx
jne 0x45dc10
or ecx, 0x1000000
jmp 0x45dc10
or ecx, 0x3000000
jmp 0x45dc10
or ecx, 0x2000000
mov eax, ecx
or ecx, esi
xor eax, esi
test eax, 0x8031f
je 0x45dc23
or ecx, 0x80000000
mov edx, 0x7ac69d03
xchg eax, edx
xor ebx, esi
and edi, 0xfa049919
jp 0x45dbb0
sal byte [ebx], 1
fiadd word [ecx + 0x49919e7]
cli
dec eax
not edi
sub esi, ebp
call fcn.00445859
neg edx
and edx, 0x9e6dc107
neg edx
ror esi, 0x1a
rol edx, 0x15
and edx, eax
add edx, ecx
xor edx, esp
cmp dword [0x482ee4], eax
jle 0x45dc5b
inc ecx
not ebx
add dword [0x486986], eax
call fcn.0044456f
inc ecx
call fcn.0045d2a4
not esi
call fcn.0042c38b
and ecx, dword [0x483d42]
mov dword [0x48679b], esi
shl ebx, 0x16
ror ecx, 0x19
xor esi, eax
cmp dword [vtable.type_info.0], 0xddbed4b5
jbe 0x45dc97
sub ebx, eax
mov ecx, 0x4dadfa7b
and edi, ebp
xchg eax, edx
shl esi, 0x13
shr ebx, 4
inc esi
xchg ebx, esi
not edx
dec ebx
ror eax, 0xa
not esi
dec ecx
jne 0x45dc9c
dec ebx
or esi, 0x5527fa17
test dword [0x483b1d], 0x585ef07e
jp 0x45dccb
shr edi, 0xe
cmp esi, edi
ja 0x45dcd1
not esi
or edi, esp
mov ecx, 0x48609225
xor dword [0x486a3b], edi
xchg edi, eax
rol eax, 1
mov esi, dword [0x48373f]
mov eax, edi
inc edi
neg edi
add esi, ebp
and edx, dword [0x484954]
neg esi
and edi, 0xcd621d97
shr ebx, 5
dec ecx
jne 0x45dcd8
mov edi, eax
cmp ebp, 0x922de20d
jl 0x45dd11
xchg edi, eax
mov ebx, ecx
dec esi
shl edx, 0xc
rol edi, 5
mov ecx, 0x4c325251
mov edi, dword [0x48473d]
neg ebx
rol eax, 9
shr esi, 5
add esi, 0x14cfae5e
mov edi, 0x4dce1be2
or edx, 0x29068f6d
xor esi, 0xbf6edb96
or edi, eax
add edx, 0x97d39962
ror ebx, 0x10
dec eax
and edx, esi
rol edi, 0x1c
not edi
dec ecx
jne 0x45dd1f
test edi, ecx
jl 0x45dd64
call fcn.0044456f
mov ecx, 0x601be328
rol ebx, 9
sub edi, dword [0x48330e]
shr ecx, 5
add edi, ebp
call fcn.00430015
mov ecx, 0x196ef060
mov edi, 0x818b6712
add ecx, 0x13e81fc9
int 0xfc
inc dword [ecx + 0xa9970ee]
cdq
or dword [0x4868c3], edx
xor edi, 0x68c6628c
rol edi, 0xc
and dword [0x4868d1], edi
xor edi, dword [0x486d54]
call fcn.004234cb
call fcn.00456c5d
call fcn.004561df
xor dword [0x486b3e], eax
ror edi, 0xc
xor edi, 0x68c6628c
and dword [0x48679b], eax
add esi, 0x990a9970
call fcn.00405214
rol ecx, 0x1f
xor edi, 0x563c9a42
add edi, ebp
xor esi, dword [0x486e6b]
rol ecx, 9
inc ebx
xchg edx, esi
call fcn.004289b1
neg esi
xor eax, dword [0x486c09]
ror ecx, 9
not esi
add ecx, dword [0x486ef0]
sub eax, ecx
add ebx, dword [0x486ec3]
xor eax, ebp
rol edi, 8
inc ebx
ror edi, 9
rol edi, 9
dec ebx
ror edi, 8
xor eax, ebp
add eax, ecx
not esi
rol ecx, 9
neg esi
fsubp st(0)
and byte [0xf287fffe], dh
dec ebx
ror ecx, 9
sub edi, ebp
add edi, 0x284802f0
not edi
dec edx
sub edi, dword [0x486c20]
ror ebx, 0xb
call fcn.0041d6c4
mov dword [0x48692d], ebx
invalid