Function at 0x445780
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1c
mov eax, 0x7c81c8f3
mov dword [esp + 0x14], ecx
jmp 0x445840
mov eax, dword [0x477954]
mov esi, 0xfc23050f
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
not eax
and ecx, 0xfffffffe
mov edx, eax
and eax, 1
and edx, 0xfffffffe
or eax, ecx
or eax, edx
mov ecx, eax
not ecx
and eax, 0x6f755947
and ecx, 0x908aa6b8
or ecx, eax
mov eax, ecx
xor eax, 0x800a0498
xor ecx, 0x27215046
and ecx, 0x37a1f266
and eax, 0xc85e0d99
or eax, ecx
xor eax, 0xc85e0d99
setne dl
sete ah
cmp dword [0x477950], 0xa
setl cl
setge al
mov ch, cl
or dl, cl
or cl, ah
or al, ah
xor ch, ah
xor cl, 1
xor dl, 1
xor al, 1
or al, dl
or cl, ch
xor al, 1
mov edx, ecx
or dl, al
xor al, cl
mov ecx, edx
xor cl, al
test cl, 1
mov ecx, 0xdbd0e8a5
cmovne ecx, esi
test al, al
mov esi, 0xdbd0e8a5
mov eax, ecx
cmovne eax, esi
test dl, dl
cmovne eax, ecx
nop dword [eax]
cmp eax, 0xfc23050e
jg 0x445890
cmp eax, 0xcc7da1a3
jle 0x445990
cmp eax, 0xdfb4a3e2
jg 0x4459fb
cmp eax, 0xcc7da1a4
je 0x445dab
cmp eax, 0xdbd0e8a5
jne 0x445840
mov eax, dword [esp + 4]
mov edx, 0xb35c6f2a
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 4]
lea eax, [ecx + 4]
mov dword [esp + 8], eax
jmp 0x445c50
cmp eax, 0x2912eeee
jle 0x4459d0
cmp eax, 0x7c81c8f2
jg 0x445a28
cmp eax, 0x2912eeef
je 0x445db5
cmp eax, 0x5648a9c0
jne 0x445840
mov eax, dword [0x477954]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
not eax
mov edx, ecx
and edx, 0x97890596
mov esi, eax
and esi, 0x6876fa68
or eax, 0xcd565b2e
or edx, esi
and eax, 0xcd565b2f
mov edi, edx
xor edi, 0x12890490
xor edx, 0x48565a29
and edx, 0xcd565b2f
and edi, 0x32a9a4d0
or edi, edx
xor eax, edi
mov edx, eax
not edx
and eax, ecx
andn esi, ecx, edx
or eax, esi
not eax
or eax, edx
xor eax, 0xffffffff
sete ch
setne dl
cmp dword [0x477950], 0xa
mov dh, ch
setl ah
setge cl
xor dh, ah
mov al, ah
and cl, ch
or al, dl
and dh, dl
and dl, ah
or ah, ch
xor ah, 1
or cl, dl
xor al, 1
or cl, ah
or al, dh
mov edx, ecx
mov ah, cl
not dl
and dl, cl
xor dl, 1
xor ah, dl
or dl, cl
xor dl, 1
or dl, ah
mov ecx, edx
or dl, al
xor cl, al
xor dl, 1
mov eax, 0xb2ecf0ff
or dl, cl
mov ch, dl
xor ch, cl
test dl, 1
mov edx, 0xa020d6c1
cmovne eax, edx
test cl, 1
cmove eax, edx
test ch, 1
mov edx, 0xb2ecf0ff
cmove eax, edx
jmp 0x445840
cmp eax, 0xb2ecf0fe
jg 0x445a50
cmp eax, 0x8b858dfc
je 0x445dc7
cmp eax, 0xa020d6c1
jne 0x445840
push dword [esp + 4]
call fcn.0044634c
add esp, 4
mov eax, 0xb2ecf0ff
jmp 0x445840
cmp eax, 0xfc23050f
je 0x445e75
cmp eax, 0x67fa7e8
je 0x445795
cmp eax, 0x10ca0d0e
jne 0x445840
mov eax, 0x2912eeef
jmp 0x445840
cmp eax, 0xdfb4a3e3
je 0x4460da
cmp eax, 0xe2e37f81
jne 0x445840
cmp byte [esp + 3], 0
mov eax, 0x5648a9c0
mov ecx, 0x2912eeef
cmovne eax, ecx
jmp 0x445840
cmp eax, 0x7dd56e09
je 0x4461f6
cmp eax, 0x7c81c8f3
jne 0x445840
mov eax, dword [esp + 0x14]
mov dword [esp + 4], eax
mov eax, 0x67fa7e8
jmp 0x445840
cmp eax, 0xb2ecf0ff
jne 0x446310
push dword [esp + 4]
call fcn.0044634c
add esp, 4
mov eax, dword [0x477954]
lea edx, [eax + 1]
imul edx, eax
mov ecx, edx
not ecx
mov eax, edx
and eax, 0x87010304
mov ebx, edx
xor ebx, 0xb70d0344
mov esi, ecx
and esi, 0x300c0040
and ebx, edx
and ecx, 0x16e453cb
or eax, esi
mov ebp, eax
xor ebp, 0x84010104
xor eax, 0x78fefcfb
mov esi, eax
and esi, 0x43beeaa0
and ebp, 0xb4010144
or ebp, esi
mov esi, ebx
not esi
and ebx, 0xbc41155f
or eax, esi
and esi, 0x43beeaa0
or ebx, esi
not eax
xor ebx, ebp
or eax, ebx
mov esi, eax
not esi
and eax, 0xb70d0345
and esi, 0x48f2fcba
or eax, esi
mov edi, eax
not edi
mov esi, eax
or eax, edx
and edx, 0xe91bac34
and esi, 0xe91bac34
and edi, 0x16e453cb
or ecx, edx
not eax
or edi, esi
mov esi, 0xa020d6c1
xor ecx, edi
or eax, ecx
mov ecx, eax
not ecx
and eax, 0xe7204062
and ecx, 0x18dfbf9d
or eax, ecx
xor eax, 0xe7204062
setne dl
sete al
cmp dword [0x477950], 0xa
mov ch, dl
setl ah
setge cl
mov dh, ah
and ch, cl
or dl, ah
and dh, al
xor al, ah
and al, ah
or dh, ch
mov ah, dl
xor cl, dh
xor al, 1
and cl, dh
xor ah, al
or al, dl
xor al, 1
mov edx, ecx
mov ch, cl
or al, ah
xor dl, 1
and dl, al
xor al, 1
xor ch, al
and al, cl
and ch, cl
or al, dl
mov edx, 0xcc7da1a4
mov cl, ch
xor cl, al
test al, 1
mov eax, 0xa020d6c1
cmovne eax, edx
test ch, ch
cmove eax, esi
test cl, 1
cmovne eax, edx
jmp 0x445840
mov dword [ecx], vtable.std::exception.0
mov edi, 0xd916fcd0
mov eax, dword [0x477964]
lea edx, [eax + 1]
imul edx, eax
not edx
mov esi, edx
or esi, 0x7ecbe7b6
mov eax, edx
and eax, 0x7ecbe7b6
mov ebx, esi
not ebx
and esi, 0x81341848
or ebx, eax
and ebx, 0x7ecbe7b7
or ebx, esi
mov esi, 0x8bb79c73
mov eax, ebx
not eax
and ebx, 0x167dff64
and eax, 0xe982009b
or ebx, eax
xor ebx, 0x167dff64
or ebx, edx
xor ebx, 0xffffffff
sete dl
setne dh
cmp dword [0x477960], 0xa
setl al
mov bh, al
xor dh, al
or bh, dl
xor dl, al
xor dh, 1
and dl, bh
xor bh, 1
or bh, dh
mov dh, dl
mov eax, edx
xor dh, 1
mov bl, dh
xor dh, bh
and bl, dl
xor bl, 1
xor al, bl
or bl, dl
xor bl, 1
or bl, al
mov eax, ebx
xor bl, 1
and bl, bh
xor bh, 1
or dl, bh
and al, bh
xor dl, 1
or bl, al
or dl, dh
mov eax, edx
xor al, bl
test al, 1
cmovne edi, esi
test dl, 1
mov edx, 0xd916fcd0
cmovne edx, edi
test bl, 1
cmove edx, edi
nop dword [eax]
cmp edx, 0xcc4d9e38
jle 0x445c80
cmp edx, 0xcc4d9e39
je 0x445b87
cmp edx, 0xd916fcd0
je 0x445d91
cmp edx, 0x665dfd35
jne 0x445c50
jmp 0x446200
cmp edx, 0x8bb79c73
je 0x445d9b
cmp edx, 0xb35c6f2a
jne 0x445c50
mov edx, dword [0x477964]
lea ebp, [edx + 1]
imul ebp, edx
mov edx, ebp
not edx
mov ebx, ebp
and ebx, 0xa2087207
mov edi, edx
and edi, 0x41970808
mov esi, edx
or esi, 0x3030807
and edx, 0x5dd940cb
or ebx, edi
and esi, 0xb230947
mov edi, ebx
xor edi, 0xa0087200
xor ebx, 0x9230940
and ebx, 0xb230947
and edi, 0xe09c7208
or edi, ebx
mov ebx, ebp
and ebx, 0x144084b0
and ebp, 0xa226bf34
or ebx, esi
or edx, ebp
xor ebx, edi
mov esi, ebx
not esi
and ebx, 0x4a9579fe
and esi, 0xb56a8601
or ebx, esi
mov edi, ebx
xor edi, 0x90800c0
xor ebx, 0x56f5fc0f
mov esi, ebx
and esi, 0xa226bf34
and edi, 0x5dd940cb
or edi, esi
mov esi, 0xcc4d9e39
xor edx, edi
mov edi, 0x8bb79c73
not edx
or edx, ebx
xor edx, 0xffffffff
setne dh
sete dl
cmp dword [0x477960], 0xa
mov al, dh
setge bl
setl bh
inc dh
and al, bh
and dh, bl
or dl, bh
mov ebx, 0xcc4d9e39
or dh, al
xor dh, 1
mov al, dh
xor al, dl
or dl, dh
xor dl, 1
or dl, al
mov al, dh
or al, dl
xor dl, dh
mov ah, al
xor ah, dl
test ah, 1
cmovne esi, edi
test dl, 1
mov edx, esi
cmovne edx, ebx
test al, 1
cmovne edx, esi
jmp 0x445c50
mov edx, 0x665dfd35
jmp 0x445c50
mov dword [ecx], vtable.std::exception.0
mov edx, 0xcc4d9e39
jmp 0x445c50
mov eax, 0x8b858dfc
jmp 0x445840
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov eax, 0xc0200bbb
jmp 0x445840
mov ecx, dword [0x477954]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
mov ecx, eax
xor ecx, 0xfffffffe
not edx
mov esi, edx
and ecx, eax
and esi, 0xfffffffe
and edx, 0x5aedfd2d
and eax, 0xa51202d2
or ecx, esi
or eax, edx
mov esi, ecx
not esi
and ecx, 0x98878ac0
xor eax, 0xa51202d2
and esi, 0x6778753f
or ecx, esi
mov esi, 0x7dd56e09
xor ecx, 0x98878ac0
or eax, ecx
mov ecx, eax
not ecx
and eax, 0x23b3070a
and ecx, 0xdc4cf8f5
or eax, ecx
xor eax, 0x23b3070a
setne dl
sete ah
cmp dword [0x477950], 0xa
mov ch, dl
setl cl
setge al
and dl, cl
and ch, al
and cl, ah
or cl, ch
xor cl, 1
or cl, al
and al, ah
or al, dl
mov edx, ecx
xor al, 1
or dl, al
xor al, cl
mov ecx, edx
xor cl, al
test cl, 1
mov ecx, 0xdfb4a3e3
cmovne ecx, esi
test al, al
mov esi, 0xdfb4a3e3
jmp 0x44582f
mov eax, dword [esp + 4]
mov edx, 0xb35c6f2a
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 4]
lea eax, [ecx + 4]
mov dword [esp + 8], eax
nop dword [eax]
cmp edx, 0xcc4d9e38
jle 0x445ec0
cmp edx, 0xcc4d9e39
je 0x445f82
cmp edx, 0xd916fcd0
je 0x4460c0
cmp edx, 0x665dfd35
jne 0x445e90
jmp 0x4462f2
cmp edx, 0x8bb79c73
je 0x4460ca
cmp edx, 0xb35c6f2a
jne 0x445e90
mov esi, dword [0x477964]
lea edx, [esi + 1]
imul edx, esi
mov esi, edx
not esi
mov ebx, edx
xor ebx, 0x909c7447
and esi, 0x909c7447
and ebx, edx
or ebx, esi
mov esi, ebx
not esi
and ebx, 0x34a5c633
and esi, 0xcb5a39cc
or ebx, esi
mov esi, ebx
xor esi, 0xa439b275
xor ebx, 0x5bc64d8a
andn edi, edx, ebx
and esi, edx
or esi, edi
mov edi, 0xcc4d9e39
not esi
or esi, ebx
xor esi, 0xffffffff
mov esi, 0x8bb79c73
setne bl
sete bh
cmp dword [0x477960], 0xa
mov eax, ebx
setl dh
setge dl
and al, dl
and dh, bh
xor bl, dl
or dh, al
and bl, bh
xor dh, 1
or dh, dl
or dl, bh
xor dl, 1
mov al, dh
or dl, bl
xor dl, 1
or al, dl
xor dl, dh
mov ah, dl
xor ah, al
test dl, dl
mov edx, 0x8bb79c73
cmovne edx, edi
test al, al
cmovne edx, esi
test ah, 1
cmove edx, edi
jmp 0x445e90
mov dword [ecx], vtable.std::exception.0
mov esi, 0x8bb79c73
mov eax, dword [0x477964]
lea ebp, [eax + 1]
imul ebp, eax
mov eax, ebp
xor eax, 0x91f50064
and eax, ebp
not ebp
or ebp, eax
not eax
and eax, 0x6e0aff9b
and ebp, 0x91f50064
or ebp, eax
mov eax, ebp
not eax
mov ebx, ebp
and ebx, 0xde484ab3
and ebp, 0x456afc06
mov edx, eax
and eax, 0x21b7b54c
or edx, 1
or ebx, eax
mov eax, edx
and eax, 0xba9503f9
or ebp, eax
mov eax, ebx
xor eax, 0x44484802
xor ebx, 0x21b7b54d
or edx, ebx
and ebx, 0xba9503f9
and eax, 0x456afc06
or eax, ebx
not edx
xor eax, ebp
or edx, eax
mov ebx, edx
not ebx
mov eax, edx
or eax, 0xd00c1944
and edx, 0x202491
mov edi, ebx
or edi, 0x22834202
and eax, 0xf28f5b46
and ebx, 0xd508028
and edi, 0xf28f5b46
or ebx, eax
or edx, edi
mov edi, 0xd916fcd0
xor edx, ebx
mov eax, edx
not eax
and edx, 0x7c953b69
and eax, 0x836ac496
or edx, eax
mov eax, edx
xor eax, 0x1302a141
xor edx, 0x8c1806b4
and eax, 0x33a3a149
and edx, 0xcc5c5eb6
or edx, eax
xor edx, 0xcc5c5eb6
setne bh
sete al
cmp dword [0x477960], 0xa
setge dl
setl bl
mov dh, dl
and bl, bh
xor dh, al
and al, dl
or bl, al
mov eax, edx
or dl, bh
xor al, bh
xor dl, 1
or dl, al
xor dl, 1
or dl, bl
mov eax, edx
not al
and al, dh
xor dh, 1
mov ah, dh
xor ah, dl
and dl, dh
or dl, al
and ah, dh
mov al, dl
xor al, ah
test dl, dl
mov edx, 0x8bb79c73
cmovne edx, edi
test ah, ah
cmove edx, esi
test al, al
cmovne edx, edi
jmp 0x445e90
mov edx, 0x665dfd35
jmp 0x445e90
mov dword [ecx], vtable.std::exception.0
mov edx, 0xcc4d9e39
jmp 0x445e90
mov ecx, dword [0x477954]
lea eax, [ecx + 1]
imul eax, ecx
andn ecx, eax, eax
mov edx, eax
not edx
mov esi, eax
and esi, 0xba3a874b
mov edi, ecx
not edi
and edx, 0x45c578b4
and ecx, 0x45c578b4
or eax, edi
and edi, 0xba3a874b
or edx, esi
or ecx, edi
not eax
xor ecx, edx
or eax, ecx
mov edx, eax
xor edx, 1
mov ecx, eax
not ecx
and edx, eax
and ecx, 0xfffffffe
and eax, 1
or eax, ecx
mov ecx, edx
not ecx
and edx, 0x8031cecc
mov edi, eax
not edi
mov esi, ecx
and esi, 0x7fce3133
and eax, 0x8031cecc
or ecx, edi
and edi, 0x7fce3133
or edx, esi
mov esi, 0x7dd56e09
or eax, edi
not ecx
xor eax, edx
or ecx, eax
mov edx, ecx
andn eax, ecx, ecx
not ecx
and edx, 0xa0d8329f
and ecx, 0x5f27cd60
or edx, ecx
xor edx, 0xa0d8329f
or eax, edx
mov ecx, eax
not ecx
and eax, 0x92d334a9
mov edx, ecx
and edx, 0x6d2ccb56
or eax, edx
xor eax, 0x6d2ccb56
xor ecx, eax
test ecx, eax
setne al
cmp dword [0x477950], 0xa
mov ch, al
setl ah
setge dl
or dl, al
xor al, ah
or ch, ah
not al
mov cl, dl
and al, ah
mov ah, ch
xor cl, 1
xor al, 1
xor ah, al
or al, ch
xor al, 1
or al, ah
mov ah, al
and al, dl
xor ah, 1
and cl, ah
or ah, dl
mov edx, 0x10ca0d0e
or cl, al
mov al, ah
xor al, cl
test al, 1
cmovne edx, esi
test ah, 1
mov eax, 0x10ca0d0e
cmovne eax, edx
test cl, cl
cmove eax, edx
jmp 0x445840
mov eax, 0xdfb4a3e3
jmp 0x445840
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
push dword [esp + 0xc]
call fcn.004474e3
add esp, 4
mov ecx, dword [0x477954]
cmp dword [esp + 0x30], 0
lea eax, [ecx + 1]
sete byte [esp + 3]
imul eax, ecx
mov ecx, eax
not ecx
mov edx, eax
and edx, 0xdb27f9ef
mov esi, ecx
and esi, 0x24d80610
and ecx, 0x1d8efc34
or edx, esi
mov esi, 0xfc23050f
mov edi, edx
xor edi, 0x522269c8
xor edx, 0x24480610
and edx, 0xad4d9636
and edi, 0x52b269c8
or edi, edx
mov edx, eax
or edx, 0xad4d9636
and eax, 0xe27103cb
and edx, 0xad4d9637
or eax, ecx
mov ecx, eax
xor edx, edi
xor ecx, 0xe27103cb
xor eax, 0x1d8efc34
andn ecx, edx, ecx
and eax, edx
not edx
or eax, ecx
not eax
or eax, edx
cmp eax, 0xffffffff
sete al
cmp dword [0x477950], 0xa
mov ecx, eax
setge ah
setl dl
xor ah, al
and cl, ah
not ah
and ah, al
xor al, dl
mov ch, cl
and al, dl
mov edx, ecx
or al, ah
xor dl, 1
and dl, al
xor al, 1
xor ch, al
and al, cl
and ch, cl
or al, dl
mov edx, 0xe2e37f81
mov cl, ch
xor cl, al
test al, al
mov eax, 0xfc23050f
cmovne eax, edx
test ch, ch
cmove eax, esi
test cl, cl
cmovne eax, edx
jmp 0x445840
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
push dword [esp + 0xc]
call fcn.004474e3
add esp, 4
mov eax, 0xdbd0e8a5
jmp 0x445840
cmp eax, 0xc0200bbb
jne 0x445840
mov eax, dword [esp + 0x18]
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret 4