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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x240
mov dword [esp + 0x40], 0x7fed7935
mov dword [esp + 0x44], 0x630b7de2
mov dword [esp + 0x48], 0x670a610c
mov dword [esp + 0x4c], 0x6b396505
mov dword [esp + 0x50], 0x6f3c693d
mov dword [esp + 0x54], 0x93b26d3c
mov dword [esp + 0x58], 0x97ed91b8
mov dword [esp + 0x5c], 0x9b0895fd
mov dword [esp + 0x60], 0x9f0d99fc
mov dword [esp + 0x64], 0x83159d07
mov dword [esp + 0x68], 0x87f481a0
mov dword [esp + 0x6c], 0x8baa85f0
mov dword [esp + 0x70], 0x8fde89d9
mov dword [esp + 0x74], 0xb3e28dde
mov dword [esp + 0x78], 0xb796b1ef
mov dword [esp + 0x7c], 0xbbd3b5cf
mov dword [esp + 0x80], 0xbfe4b92a
mov dword [esp + 0x84], 0xa3fdbde8
mov dword [esp + 0x88], 0xa73ea180
mov dword [esp + 0x8c], 0xabfea5fe
mov dword [esp + 0x90], 0xaf8ea981
mov dword [esp + 0x94], 0xd342aded
mov dword [esp + 0x98], 0xd7bad140
mov dword [esp + 0x9c], 0xdba1d5b1
mov dword [esp + 0xa0], 0xdfb8d9bd
mov dword [esp + 0xa4], 0xc3abdd93
mov dword [esp + 0xa8], 0xc795c154
mov dword [esp + 0xac], 0xcb9dc591
mov dword [esp + 0xb0], 0xcf9cc993
mov dword [esp + 0xb4], 0xf3a8cd9b
mov dword [esp + 0xb8], 0xf7def1d0
mov dword [esp + 0xbc], 0xfbb2f5bb
mov dword [esp + 0xc0], 0xffb3f98c
mov dword [esp + 0xc4], 0xe3cefdb0
mov dword [esp + 0xc8], 0xe78ae1c0
mov dword [esp + 0xcc], 0xeb85e58d
mov dword [esp + 0xd0], 0xefcee98d
mov dword [esp + 0xd4], 0x1377eda7
mov dword [esp + 0xd8], 0x17791177
mov dword [esp + 0xdc], 0x1b331587
mov dword [esp + 0xe0], 0x1f591938
mov dword [esp + 0xe4], 0x3941d74
mov dword [esp + 0xe8], 0x76b0193
mov dword [esp + 0xec], 0xb590561
mov dword [esp + 0xf0], 0xf5f0959
mov dword [esp + 0xf4], 0x33600d55
mov dword [esp + 0xf8], 0x37643160
mov dword [esp + 0xfc], 0x3b683564
mov dword [esp + 0x100], 0x3f1e3968
mov dword [esp + 0x104], 0x23433d4b
mov dword [esp + 0x108], 0x2747214a
mov dword [esp + 0x10c], 0x2b4325b2
mov dword [esp + 0x110], 0x2f7b297b
mov dword [esp + 0x114], 0x53092d7b
mov dword [esp + 0x118], 0x57015102
mov dword [esp + 0x11c], 0x5b5a550e
mov word [esp + 0x120], 0
mov eax, dword [0x44f190]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xea
xor dl, byte [esp + ecx + 0x40]
add dl, 0x6e
mov byte [esp + ecx + 0x40], dl
inc ecx
cmp ecx, 0xe2
jne case.default.0x4103c1
lea edi, [esp + 0x40]
push 0
push 0
push 0
push 0
push edi
call eax
mov ebp, eax
xor eax, eax
test ebp, ebp
setne al
jmp dword [eax*4 + 0x449c20]
xor ebx, ebx
jmp 0x4107cf
mov eax, dword [0x44f194]
mov dword [esp + 0x40], 0x898a9449
mov word [esp + 0x44], 0
xor ecx, ecx
mov edx, 0xc
nop
nop
nop
nop
nop
nop
mov esi, edx
and esi, 0xe
mov ebx, ecx
and ebx, 1
or ebx, esi
xor bl, byte [esp + ecx + 0x40]
xor bl, 0xaf
add bl, 0xd1
mov byte [esp + ecx + 0x40], bl
inc ecx
dec edx
cmp ecx, 6
jne case.default.0x410428
movzx ecx, word [esp + 0x40]
push 0
push ecx
push 0x44f1c4
push ebp
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x449c28]
xor ebx, ebx
jmp 0x4107c8
mov dword [esp], eax
mov dword [esp + 0x3c], ebp
mov eax, dword [0x44f198]
mov dword [esp + 0x38], eax
mov dword [esp + 4], 0xc146c7c4
mov word [esp + 8], 0
mov ecx, 0x7bab9131
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x7bab912d]
lea eax, [ecx - 0x7bab9100]
and eax, edx
mov ebx, eax
and ebx, 2
mov ebp, eax
or ebp, 0xfd
inc ebp
mov esi, eax
and esi, 0x3d
imul esi, ebp
or eax, 2
imul eax, ebx
sub esi, eax
mov eax, ecx
and eax, edx
xor edx, ecx
lea eax, [edx + eax*2]
add eax, esi
add al, 0xb
mov byte [esp + ecx - 0x7bab912d], al
inc ecx
cmp ecx, 0x7bab9137
jne 0x410460
mov eax, dword [esp + 4]
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], 0xc30dc170
mov dword [esp + 0x44], 0xc772c577
mov word [esp + 0x48], 0xc9c8
mov dword [esp + 0x4a], 0
mov word [esp + 0x4e], 0
mov edx, 0xb0
mov ebx, 0x51d21a4f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx - 0x70]
mov ecx, edx
and ecx, eax
lea esi, [ebx - 0x51d21a00]
and esi, eax
mov ebp, ebx
xor ebp, eax
sub ebp, eax
add ebp, esi
or ebp, ecx
mov eax, 0x991a838e
sub eax, ebp
mov esi, eax
and esi, 1
add ebp, 0x66e57c71
mov ecx, ebp
not ecx
and ebp, 0xc5
and eax, 0x3a
or eax, ebp
and ecx, 1
or ecx, eax
xor ecx, 0xc4
add ecx, esi
mov byte [esp + edx - 0x70], cl
inc edx
dec ebx
cmp edx, 0xc0
jne case.default.0x41056d
push dword [esp + 0x34]
push 0
push 0
push 0
push dword [esp + 0x264]
push edi
mov esi, dword [esp + 0x18]
push esi
call dword [esp + 0x54]
mov ebp, eax
xor eax, eax
test ebp, ebp
setne al
xor ebx, ebx
jmp dword [eax*4 + 0x449c30]
xor eax, eax
mov ecx, dword [esp + 0x26c]
test ecx, ecx
setg al
jmp dword [eax*4 + 0x449c38]
movzx eax, byte [0x44f2c8]
jmp dword [eax*4 + 0x449c40]
push ecx
push ecx
push ecx
push ecx
push ebp
call dword [0x44f1a0]
movzx eax, byte [0x44f2c8]
jmp dword [eax*4 + 0x449c40]
mov dword [esp + 4], 0xcf5dc90f
mov dword [esp + 8], 0xc35dcd5f
mov dword [esp + 0xc], 0xc763c159
mov dword [esp + 0x10], 0xbb5ac50a
mov dword [esp + 0x14], 0xbf1db91b
mov dword [esp + 0x18], 0xb328bd1b
mov dword [esp + 0x1c], 0xb72bb113
mov dword [esp + 0x20], 0xab09b53f
mov dword [esp + 0x24], 0xaf27a90e
mov dword [esp + 0x28], 0xa36fad3c
mov dword [esp + 0x2c], 0xa1a0
mov byte [esp + 0x30], 0
mov eax, 0x41e8a032
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x41e8a02e]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 6
mov byte [esp + eax - 0x41e8a02e], cl
inc eax
cmp eax, 0x41e8a05f
jne 0x410620
movzx eax, word [esp + 4]
test ax, ax
je 0x410671
lea edi, [esp + 0x40]
lea ecx, [esp + 6]
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x410660
mov word [edi], 0
movzx eax, word [0x44f2ca]
test ax, ax
je 0x4106a5
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi + ecx], ax
movzx eax, word [ecx + 0x44f2cc]
add ecx, 2
test ax, ax
jne 0x410690
add edi, ecx
mov word [edi], 0
mov eax, dword [0x44f1a4]
mov dword [esp + 4], 0x110e0f0c
mov ecx, 0xa59fcabd
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x5a603547]
xor edx, ecx
mov esi, edx
and esi, 1
or edx, 1
add edx, esi
add dl, 0x4e
mov byte [esp + ecx + 0x5a603547], dl
inc ecx
cmp ecx, 0xa59fcac1
jne 0x4106c0
lea ecx, [esp + 0x40]
push dword [esp + 4]
push 0xffffffffffffffff
push ecx
push ebp
call eax
xor ebx, ebx
mov ecx, dword [esp + 0x258]
mov eax, ecx
neg eax
mov eax, 0
sbb eax, eax
push 0
mov esi, dword [esp + 0x26c]
push esi
push dword [esp + 0x268]
push dword [esp + 0x268]
push eax
push ecx
push ebp
call dword [0x44f1a8]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x449c48]
mov dword [esp + 0x40], 0
lea eax, [esp + 0x40]
push eax
push esi
push dword [esp + 0x26c]
push ebp
call dword [0x44f1b8]
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x449c50]
push 0
push ebp
call dword [0x44f1ac]
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x449c58]
mov bl, 1
mov eax, dword [case.0x41056d.5]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov esi, dword [esp]
jmp dword [0x449c70]
push ebp
call dword [0x44f1bc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push ebp
call dword [0x44f1bc]
jmp dword [0x449c78]
push esi
call dword [0x44f1bc]
mov ebp, dword [esp + 0x3c]
push ebp
call dword [0x44f1bc]
mov eax, ebx
add esp, 0x240
pop esi
pop edi
pop ebx
pop ebp
ret
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
nop
push eax
sub esp, 0x7c
mov dword [esi + 0x6c], esp
sub esp, 8
mov dword [esi + 0x68], esp
sub esp, 0x20
mov dword [esi + 8], esp
push eax
mov dword [esi + 0x8c], esp
push eax
mov dword [esi + 0x10], esp
sub esp, 0x68
mov dword [esi + 4], esp
sub esp, 0x10
mov dword [esi], esp
sub esp, 0x208
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0xc], esp
sub esp, 8
mov dword [esi + 0x70], esp
sub esp, 8
mov dword [esi + 0x48], esp
push eax
mov dword [esi + 0x7c], esp
sub esp, 0x68
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x64], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x60], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x5c], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x58], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x54], eax
mov esp, eax
push eax
sub esp, 0x64
mov edi, esp
and edi, 0xfffffff8
mov esp, edi
push eax
sub esp, 0xfc
mov dword [esi + 0x50], esp
sub esp, 8
mov dword [esi + 0x4c], esp
sub esp, 8
mov dword [esi + 0x20], esp
sub esp, 0x24
mov dword [esi + 0x34], esp
push eax
mov dword [esi + 0x44], esp
push eax
mov dword [esi + 0x84], esp
sub esp, 0x68
mov dword [esi + 0x14], esp
sub esp, 0x10
mov dword [esi + 0x80], esp
sub esp, 0x68
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
push eax
sub esp, 0xc
mov dword [esi + 0x1c], esp
sub esp, 0x800
mov dword [esi + 0x2c], esp
sub esp, 0x80
mov dword [esi + 0x18], esp
sub esp, 0x44
mov dword [esi + 0x30], esp
sub esp, 0x10
mov dword [esi + 0x28], esp
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
jmp dword [0x44a384]
mov dword [esi + 0x24], ebx
mov dword [esi + 0x40], edi
shr eax, 0x1f
jmp dword [eax*4 + 0x44a38c]
push 0
push 0
push 0
push 3
push 0
push 0
push 0
push 0xffffffffffffffff
push 0
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
shr eax, 0x1f
jmp dword [eax*4 + 0x44a394]
push 0x44f164
call fcn.0043a6f0
add esp, 4
mov eax, dword [0x4496f4]
mov dword [esi + 0x78], eax
mov edx, dword [esi + 0x68]
mov dword [edx], 0xe32f1bc6
mov word [edx + 4], 0
mov byte [edx + 6], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0x28
xor al, byte [edx + ecx]
add al, 0x38
mov byte [edx + ecx], al
inc ecx
cmp ecx, 7
jne 0x410970
mov eax, dword [str.FATE99__PAW]
mov dword [esi + 0x74], eax
mov eax, dword [esi + 8]
mov dword [eax], 0x92aaa6a9
mov dword [eax + 4], 0xbabdb8aa
mov dword [eax + 8], 0xaabdbcaa
mov dword [eax + 0xc], 0xbaa5a2b1
mov dword [eax + 0x10], 0x9d4cb4b3
mov dword [eax + 0x14], 0x5fa79b89
mov dword [eax + 0x18], 0x9b445152
mov dword [eax + 0x1c], 0x6baf8185
xor eax, eax
xor ebx, ebx
mov edi, dword [esi + 0x6c]
nop
nop
nop
nop
nop
mov ecx, ebx
xor ecx, 0x72
mov edx, eax
and edx, 0x1a
sub edx, ecx
mov ecx, dword [esi + 8]
xor dl, byte [ecx + ebx]
add dl, 0x3a
mov byte [ecx + ebx], dl
inc ebx
add eax, 2
cmp ebx, 0x20
jne 0x4109d0
movzx edx, byte [ecx]
mov ebx, edi
test dl, dl
je 0x410a0b
inc ecx
mov ebx, edi
nop
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x410a00
mov byte [ebx], 0
mov ecx, dword [esi + 0x74]
movzx edx, byte [ecx]
test dl, dl
mov eax, dword [esi + 4]
je 0x410a2b
inc ecx
nop
nop
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x410a20
mov byte [ebx], 0
mov edx, dword [esi + 0x68]
movzx ecx, byte [edx]
test cl, cl
je 0x410a4b
inc edx
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x410a40
mov byte [ebx], 0
mov edx, dword [esi + 0x78]
movzx ecx, byte [edx]
test cl, cl
je 0x410a6b
inc edx
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x410a60
mov dword [esi + 8], ebx
mov byte [ebx], 0
mov dword [eax], 0x239d21e3
mov dword [eax + 4], 0x2792259a
mov dword [eax + 8], 0x3b84399d
mov dword [eax + 0xc], 0x3fc33d88
mov dword [eax + 0x10], 0x33bb31e4
mov dword [eax + 0x14], 0x37933584
mov dword [eax + 0x18], 0xbea09c2
mov dword [eax + 0x1c], 0xfbe0dad
mov dword [eax + 0x20], 0x3be01b0
mov dword [eax + 0x24], 0x7a505bd
mov dword [eax + 0x28], 0x1bae19b9
mov dword [eax + 0x2c], 0x1fa11da5
mov dword [eax + 0x30], 0x13ed11ae
mov dword [eax + 0x34], 0x17eb159c
mov dword [eax + 0x38], 0xeb5de95f
mov dword [eax + 0x3c], 0xef13ed5b
mov dword [eax + 0x40], 0xe35de146
mov dword [eax + 0x44], 0xe75be556
mov dword [eax + 0x48], 0xfb4ff905
mov dword [eax + 0x4c], 0xff42fd4e
mov dword [eax + 0x50], 0xf34cf155
mov dword [eax + 0x54], 0xf749f557
mov dword [eax + 0x58], 0xcb6fc96c
mov dword [eax + 0x5c], 0xcfd3cd68
mov dword [eax + 0x60], 0xc3c2c1da
mov byte [eax + 0x66], 0
mov word [eax + 0x64], 0
mov eax, 0x78c5dec8
nop
nop
mov ecx, dword [esi + 4]
movzx ecx, byte [ecx + eax - 0x78c5dec8]
mov edx, ecx
not edx
or edx, eax
lea edi, [ecx + edx]
inc edi
mov ebx, edi
and ebx, 0xfffffffd
mov edx, edi
or edx, 0xfffffffd
inc edx
imul edx, ebx
mov ebx, edi
and ebx, 2
or edi, 2
imul edi, ebx
add edx, ecx
sub edx, edi
add edx, eax
mov ecx, edx
and ecx, 0x17
xor edx, 0x17
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esi + 4]
mov byte [edx + eax - 0x78c5dec8], cl
inc eax
cmp eax, 0x78c5df2f
jne 0x410b30
mov edi, dword [esi + 0x6c]
sub dword [esi + 8], edi
mov eax, dword [esi]
mov dword [eax], 0x812587f5
mov dword [eax + 4], 0x8d298330
mov dword [eax + 8], 0x8f8c
mov byte [eax + 0xc], 0
xor ecx, ecx
mov ebx, dword [esi + 0x8c]
jmp dword [0x44a39c]
xor eax, eax
cmp eax, 0xc
ja 0x410be2
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
xor ecx, 0xde
mov edx, eax
or edx, 0x21
and ecx, edx
add ecx, edx
mov edx, dword [esi]
xor cl, byte [edx + eax]
add cl, 0x5b
mov byte [edx + eax], cl
inc eax
cmp eax, 0xc
jbe 0x410bc0
push dword [esi + 0x10]
push ebx
push dword [esi + 8]
push edi
push dword [esi + 4]
push dword [esi]
push 0x44f1c4
call fcn.0040f970
add esp, 0x1c
xor ecx, ecx
nop
nop
mov eax, ecx
xor eax, 0xde
mov edx, ecx
or edx, 0x21
and eax, edx
add eax, edx
mov edx, dword [esi]
xor al, byte [edx + ecx]
add al, 0x5b
mov byte [edx + ecx], al
inc ecx
cmp ecx, 0xd
jne case.0x41056d.29
push dword [esi + 0x10]
push ebx
push dword [esi + 8]
push edi
push dword [esi + 4]
push edx
push 0x44f1c4
call fcn.0040f970
add esp, 0x1c
xor ecx, ecx
jmp dword [0x44a3a8]
movzx eax, al
jmp dword [eax*4 + 0x44a3ac]
xor ebx, ebx
xor eax, eax
test ebx, 0
sete al
jmp dword [eax*4 + 0x44a3b4]
call dword [sym.imp.ole32.dll_CoUninitialize]
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x104
push dword [esi + 0x88]
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov eax, dword [esi + 0x10]
mov ecx, dword [eax]
mov edi, dword [ebx]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [edi + ecx - 1]
cmp edx, 0x3d
je 0x410c9c
cmp edx, 0x2e
jne 0x410c9d
dec eax
movzx ecx, byte [edi + ecx - 2]
cmp ecx, 0x3d
je 0x410cac
cmp ecx, 0x2e
jne 0x410cad
dec eax
mov dword [esi], edi
push eax
call fcn.0040c8b0
add esp, 4
mov edi, eax
push eax
push dword [esi]
call fcn.0043b2f0
add esp, 8
push dword [ebx]
mov ebx, edi
call fcn.0043dc40
add esp, 4
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x44a3b4]
push ebx
call fcn.00403d70
add esp, 4
mov edi, eax
jmp dword [0x44a3bc]
push ebx
call fcn.0040c8c0
add esp, 4
mov dword [esi + 0x10], edi
push edi
call fcn.004046d0
add esp, 4
mov dword [esi + 4], eax
mov eax, dword [esi + 0xc]
mov dword [eax], 0x9ef4e2
xor ecx, ecx
mov edi, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi], edi
mov ebx, dword [esi]
or ebx, 0x86b94f9a
lea edi, [ecx + ebx]
inc edi
mov edx, edi
and edx, 0xfffffffd
mov eax, edi
and eax, 2
or edi, 2
imul edi, eax
xor eax, 2
imul eax, edx
mov edx, ecx
or edx, 0x7946b065
and edx, ebx
not edx
add edx, edi
mov edi, dword [esi + 0xc]
movzx edi, byte [edi + ecx]
add edx, eax
mov ebx, edx
and ebx, edi
add ebx, ebx
add edx, edi
mov eax, edx
sub eax, ebx
mov edi, dword [esi]
and edx, 1
or eax, 1
add eax, edx
add al, 0xfd
mov edx, dword [esi + 0xc]
mov byte [edx + ecx], al
mov eax, dword [esi + 0xc]
inc ecx
dec edi
cmp ecx, 4
jne case.default.0x410d96
push eax
push dword [esi + 4]
call fcn.00404750
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x44a3c4]
call fcn.00439ba0
movzx eax, al
jmp dword [eax*4 + 0x44a3cc]
mov ecx, dword [esi + 0x70]
mov word [ecx], 0xdbdf
mov byte [ecx + 2], 0x3e
mov word [ecx + 3], 0
mov byte [ecx + 5], 0
mov eax, 0x24f86745
mov edi, 0xdb07999a
nop
nop
nop
nop
movzx ecx, byte [ecx + eax - 0x24f86745]
mov dword [esi], ecx
lea edx, [eax - 0x24f866d0]
and edx, ecx
mov ebx, edx
and ebx, 0x7d
mov ecx, edx
or ecx, 0xfffffffd
inc ecx
imul ecx, ebx
mov ebx, edx
and ebx, 2
or edx, 2
imul edx, ebx
mov ebx, dword [esi]
add ebx, ecx
sub ebx, edx
sub edx, ecx
mov ecx, dword [esi + 0x70]
sub edx, dword [esi]
add ebx, eax
add edx, edi
and edx, 0x1a
and ebx, 0xe5
sub ebx, edx
inc bl
mov byte [ecx + eax - 0x24f86745], bl
inc eax
dec edi
cmp eax, 0x24f8674b
jne 0x410dd0
push ecx
push dword [esi + 4]
call fcn.00404750
add esp, 8
mov dword [esi + 0xc], eax
mov ecx, dword [esi + 0x48]
mov word [ecx], 0x6c63
mov byte [ecx + 2], 0x92
mov dword [ecx + 3], 0
mov byte [ecx + 7], 0
mov eax, 0xe0775423
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi], ecx
movzx ebx, byte [ecx]
mov edi, ebx
and edi, 9
lea ecx, [eax + 0x40000000]
and ecx, 0x20450009
mov edx, eax
and edx, 0xc0325436
or edx, ecx
mov ecx, ebx
not ecx
or ecx, 0xcf3af7f6
add ecx, ebx
inc ecx
xor edi, ecx
not ecx
or ecx, ebx
xor edi, 0x30c50809
not ecx
and ecx, 0x30c50809
or ecx, edi
xor edx, 0xcf3af7f6
mov edi, ecx
and edi, edx
add edx, ecx
mov ecx, dword [esi]
add edi, edi
sub edx, edi
add dl, 0xb4
mov byte [ecx], dl
inc ecx
dec eax
cmp eax, 0xe077541b
jne 0x410e60
push dword [esi + 0x48]
push dword [esi + 4]
call fcn.00404750
add esp, 8
mov edi, dword [esi + 0x7c]
mov dword [edi], 0x19b3b5b0
xor ecx, ecx
nop
nop
nop
nop
mov edx, ecx
add dl, 0xfb
xor dl, byte [edi + ecx]
add dl, 0x19
mov byte [edi + ecx], dl
inc ecx
cmp ecx, 4
jne case.default.0x410fe4
xor ebx, ebx
test eax, eax
setg bl
push edi
mov edi, dword [esi + 4]
push edi
call fcn.00404750
add esp, 8
mov dword [esi + 8], eax
push edi
call fcn.004118f0
add esp, 4
push dword [esi + 0x10]
call fcn.00404940
add esp, 4
mov edi, dword [esi + 0x64]
mov ecx, edi
push 1
call fcn.0040d280
push edi
call fcn.00427230
add esp, 4
mov ecx, edi
call fcn.0040db20
mov edi, dword [esi + 0x60]
mov ecx, edi
push 3
call fcn.0040d280
push edi
call fcn.004279a0
add esp, 4
mov ecx, edi
call fcn.0040db20
mov edi, dword [esi + 0x5c]
mov ecx, edi
push 1
call fcn.0040d280
push edi
call fcn.00427b90
add esp, 4
mov ecx, edi
call fcn.0040db20
mov edi, dword [esi + 0x58]
mov ecx, edi
push 1
call fcn.0040d280
push edi
call fcn.00429d00
add esp, 4
push edi
call fcn.0042a6d0
add esp, 4
push edi
call fcn.0042aa40
add esp, 4
push edi
call fcn.0042d360
add esp, 4
mov ecx, edi
call fcn.0040db20
mov edi, dword [esi + 0x54]
mov ecx, edi
push 1
call fcn.0040d280
push edi
call fcn.0042c3e0
add esp, 4
mov ecx, edi
call fcn.0040db20
mov edi, dword [esi + 0x40]
mov ecx, edi
push 1
call fcn.0040d280
push edi
call fcn.0042eb60
add esp, 4
push edi
call fcn.00435210
add esp, 4
jmp dword [ebx*4 + 0x44a3d4]
push edi
call fcn.004353c0
add esp, 4
mov ecx, edi
call fcn.0040db20
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0xc6b3c30e
mov dword [ecx + 4], 0x2eeccc
mov eax, 8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [ecx]
lea edx, [eax - 0xd78bb00]
or edx, edi
and edi, eax
not edx
or edx, edi
mov edi, edx
and edi, 0x2c
mov ebx, edx
xor ebx, 0x2c
lea ebx, [ebx + edi*2]
and edx, 1
or ebx, 1
add ebx, edx
mov byte [ecx], bl
inc ecx
dec eax
jne 0x411020
mov eax, dword [0x4496f4]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x20]
mov dword [eax], 0x97530f42
mov dword [eax + 4], 0
mov ecx, 0xb3c35e66
mov edx, 0x4c3ca199
mov edi, 0x33c35e66
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi], edx
mov ebx, dword [esi]
and ebx, 0x4424a00b
mov eax, ecx
and eax, 0x3801c24
or eax, ebx
mov edx, dword [esi + 0x20]
movzx ebx, byte [edx + ecx + 0x4c3ca19a]
xor eax, ebx
xor eax, 0xb981db4
and eax, edi
add eax, eax
sub ebx, eax
add ebx, ecx
mov eax, ebx
xor eax, 0xfe
or ebx, 1
and eax, ebx
add eax, ebx
mov edx, dword [esi]
inc al
mov ebx, dword [esi + 0x20]
mov byte [ebx + ecx + 0x4c3ca19a], al
inc ecx
dec edx
inc edi
cmp ecx, 0xb3c35e6e
jne 0x411080
mov edx, dword [str.FATE99__PAW]
mov ecx, dword [esi + 0x34]
mov dword [ecx], 0xf2bac6d9
mov dword [ecx + 4], 0xd0bec8cf
mov dword [ecx + 8], 0x4041ccc5
mov dword [ecx + 0xc], 0xf137362d
mov dword [ecx + 0x10], 0x2483442
mov dword [ecx + 0x14], 0xf9f2f708
mov dword [ecx + 0x18], 0x1a223834
mov byte [ecx + 0x1c], 0xdc
mov dword [ecx + 0x1d], 0
mov dword [ecx + 0x20], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [ecx + eax]
mov ecx, 0x89
sub ecx, eax
lea edi, [eax + 0x76]
or edi, ebx
not ebx
or ebx, ecx
and ebx, edi
add bl, 0xb2
mov ecx, dword [esi + 0x34]
mov byte [ecx + eax], bl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov ecx, dword [esi + 0x34]
cmp eax, 0x24
jb 0x411130
movzx ebx, byte [ecx]
mov edi, dword [esi + 0x50]
mov eax, edi
test bl, bl
je 0x41118b
inc ecx
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [ecx]
inc ecx
test bl, bl
jne 0x411180
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
mov ecx, dword [esi + 0x20]
je 0x4111ab
inc edx
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x4111a0
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x4111cd
inc ecx
mov ebx, dword [esi + 0x14]
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x4111c0
jmp 0x4111d0
mov ebx, dword [esi + 0x14]
mov byte [eax], 0
mov ecx, dword [esi + 4]
movzx edx, byte [ecx]
test dl, dl
je 0x4111eb
inc ecx
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x4111e0
mov byte [eax], 0
mov edx, dword [esi + 0x4c]
movzx ecx, byte [edx]
test cl, cl
je 0x41120b
inc edx
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x411200
mov byte [eax], 0
movzx ecx, byte [0x44f164]
test cl, cl
je 0x411231
xor edx, edx
nop
nop
nop
nop
nop
mov byte [eax + edx], cl
movzx ecx, byte [edx + 0x44f165]
inc edx
test cl, cl
jne 0x411220
add eax, edx
mov byte [eax], 0
mov ecx, edi
not ecx
and ecx, eax
add ecx, ecx
mov dword [ebx], 0xcf5dc98f
mov dword [ebx + 4], 0xc356cd5e
mov dword [ebx + 8], 0xc754c1a5
mov dword [ebx + 0xc], 0xfba7c550
mov dword [ebx + 0x10], 0xff77f98c
mov dword [ebx + 0x14], 0xf397fd6c
mov dword [ebx + 0x18], 0xf7d6f1be
mov dword [ebx + 0x1c], 0xeb7af595
mov dword [ebx + 0x20], 0xef72e978
mov dword [ebx + 0x24], 0xe385ed75
mov dword [ebx + 0x28], 0xe772e181
mov dword [ebx + 0x2c], 0x1b89e57d
mov dword [ebx + 0x30], 0x1f4d198a
mov dword [ebx + 0x34], 0x134f1d94
mov dword [ebx + 0x38], 0x179d119b
mov dword [ebx + 0x3c], 0xb57159f
mov dword [ebx + 0x40], 0xf9d0992
mov dword [ebx + 0x44], 0x39f0d9a
mov dword [ebx + 0x48], 0x793015d
mov dword [ebx + 0x4c], 0x3ba60592
mov dword [ebx + 0x50], 0x3fac395d
mov dword [ebx + 0x54], 0x33a13d5b
mov dword [ebx + 0x58], 0x37533154
mov dword [ebx + 0x5c], 0x2b173550
mov dword [ebx + 0x60], 0x2f2e2916
mov byte [ebx + 0x66], 0
mov word [ebx + 0x64], 0
xor eax, edi
mov edx, 0x2cddefd2
nop
nop
nop
nop
nop
movzx edi, byte [ebx + edx - 0x2cddefd2]
xor edi, edx
mov ebx, edi
and ebx, 0x65
add ebx, ebx
xor edi, 0x1a
sub ebx, edi
mov edi, dword [esi + 0x14]
mov byte [edi + edx - 0x2cddefd2], bl
mov ebx, dword [esi + 0x14]
inc edx
cmp edx, 0x2cddf039
jne 0x411300
mov edi, dword [esi + 0x80]
mov dword [edi], 0xd1adcffd
mov dword [edi + 4], 0xd5b9d3a0
mov word [edi + 8], 0xd7d4
mov dword [edi + 0xa], 0
xor edx, edx
nop
nop
mov ebx, edx
add bl, 0xcd
xor bl, byte [edi + edx]
dec bl
mov byte [edi + edx], bl
inc edx
cmp edx, 0xe
jne case.default.0x41138a
sub ecx, eax
mov ebx, dword [esi + 0x84]
push ebx
mov eax, edi
mov edi, dword [esi + 0x44]
push edi
push ecx
push dword [esi + 0x50]
push dword [esi + 0x14]
push eax
push 0x44f1c4
call fcn.0040f970
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x44a3dc]
xor eax, eax
cmp dword [esi + 8], 0
setg al
mov edi, dword [esi + 0x30]
mov ecx, dword [esi + 0x24]
jmp dword [eax*4 + 0x44a3fc]
xor eax, eax
cmp dword [esi + 0xc], 0
setg al
jmp dword [eax*4 + 0x44a404]
mov edi, dword [edi]
mov ecx, dword [ebx]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [edi + ecx - 1]
cmp edx, 0x3d
je 0x4113d0
cmp edx, 0x2e
jne 0x4113d1
dec eax
movzx ecx, byte [edi + ecx - 2]
cmp ecx, 0x3d
je 0x4113e0
cmp ecx, 0x2e
jne case.0x41056d.48
dec eax
mov ecx, dword [case.0x41138a.4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
push eax
call fcn.0040c8b0
add esp, 4
mov dword [esi], eax
push dword [esi]
push edi
call fcn.0043b2f0
add esp, 8
mov eax, dword [esi + 0x44]
push dword [eax]
call fcn.0043dc40
add esp, 4
push dword [esi]
call fcn.00403d70
add esp, 4
mov ebx, eax
mov edi, dword [esi + 0x30]
jmp dword [0x44a3f4]
push dword [esi]
call fcn.0040c8c0
add esp, 4
push ebx
call fcn.00417590
add esp, 4
push ebx
call fcn.00404940
add esp, 4
xor eax, eax
cmp dword [esi + 8], 0
setg al
mov ecx, dword [esi + 0x24]
jmp dword [eax*4 + 0x44a3fc]
push 1
call fcn.0040d280
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 0x44f4cd], 0
lea eax, [eax + 1]
jne 0x411470
mov ecx, dword [esi + 0x1c]
mov dword [ecx], 0xeec4f8d8
mov dword [ecx + 4], 0xd5eeb5f9
mov dword [ecx + 8], 0x5fd0
mov byte [ecx + 0xc], 0
xor ecx, ecx
xor edx, edx
nop
nop
nop
nop
nop
mov ebx, ecx
and ebx, 0x12
mov edi, edx
xor edi, 0x29a1ed19
add edi, ebx
mov ebx, dword [esi + 0x1c]
movzx ebx, byte [ebx + edx]
xor edi, ebx
mov ebx, edi
or ebx, 0x82
add ebx, edi
not edi
or edi, 0x82
add ebx, edi
add bl, 2
mov edi, dword [esi + 0x1c]
mov byte [edi + edx], bl
mov ebx, dword [esi + 0x1c]
inc edx
add ecx, 2
cmp edx, 0xd
jne case.default.0x41150c
mov edi, dword [esi + 0x24]
mov ecx, edi
push eax
push 0x44f4cc
push ebx
call fcn.0040d480
mov ecx, edi
call fcn.0040db20
mov ecx, edi
call fcn.0040d2c0
xor eax, eax
cmp dword [esi + 0xc], 0
setg al
mov edi, dword [esi + 0x30]
jmp dword [eax*4 + 0x44a404]
push 0
call fcn.004432c0
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44a40c]
mov ecx, dword [esi + 0x18]
mov dword [ecx], 0xe111e719
mov dword [ecx + 4], 0xfdd4e31c
mov dword [ecx + 8], 0xf976ff03
mov dword [ecx + 0xc], 0xf5dafb07
mov dword [ecx + 0x10], 0xf17bf7d6
mov dword [ecx + 0x14], 0x8d11f37c
mov dword [ecx + 0x18], 0x89028f7e
mov dword [ecx + 0x1c], 0x85bb8ba8
mov dword [ecx + 0x20], 0x817d8773
mov dword [ecx + 0x24], 0x9da28376
mov dword [ecx + 0x28], 0x99699f61
mov dword [ecx + 0x2c], 0x95ac9b64
mov dword [ecx + 0x30], 0x911e976b
mov dword [ecx + 0x34], 0xadb2936f
mov dword [ecx + 0x38], 0xa99faf8e
mov dword [ecx + 0x3c], 0xa58aab55
mov dword [ecx + 0x40], 0xa15da728
mov dword [ecx + 0x44], 0xbd5da357
mov dword [ecx + 0x48], 0xb931bf4d
mov dword [ecx + 0x4c], 0xb59abb34
mov dword [ecx + 0x50], 0xb13ab785
mov dword [ecx + 0x54], 0x4d7fb390
mov dword [ecx + 0x58], 0x497f4f6c
mov dword [ecx + 0x5c], 0x45bb4bbe
mov dword [ecx + 0x60], 0x41b447a6
mov dword [ecx + 0x64], 0x5da143bf
mov dword [ecx + 0x68], 0x597e5fa9
mov dword [ecx + 0x6c], 0x557a5b66
mov dword [ecx + 0x70], 0x51a957a8
mov dword [ecx + 0x74], 0x6d7253a4
mov dword [ecx + 0x78], 0x696e6f4e
mov byte [ecx + 0x7c], 0
xor ecx, ecx
nop
nop
nop
nop
mov edx, ecx
add dl, 0xa9
mov ebx, dword [esi + 0x18]
xor dl, byte [ebx + ecx]
add dl, 0xb3
mov ebx, dword [esi + 0x18]
mov byte [ebx + ecx], dl
mov ebx, dword [esi + 0x18]
inc ecx
cmp ecx, 0x7d
jne 0x411610
movzx edx, word [ebx]
mov ecx, dword [esi + 0x2c]
test dx, dx
je 0x411651
add ebx, 2
mov ecx, dword [esi + 0x2c]
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [ebx]
add ebx, 2
test dx, dx
jne 0x411640
mov word [ecx], 0
movzx edx, word [eax]
test dx, dx
je 0x411681
add eax, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [eax]
add eax, 2
test dx, dx
jne 0x411670
mov dword [ecx], 0x220022
mov dword [ecx + 4], 0x22
mov dword [edi + 0x40], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0x34], 0
mov dword [edi + 0x30], 0
mov dword [edi + 0x28], 0
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0
mov dword [edi + 0x1c], 0
mov dword [edi + 0x18], 0
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0xc], 0
mov dword [edi + 8], 0
mov dword [edi + 4], 0
mov dword [edi], 0x44
mov dword [edi + 0x2c], 1
push 0x38c42730
push dword [0x4504cc]
call fcn.004433b0
add esp, 8
mov ecx, edi
mov edi, dword [esi + 0x28]
push edi
push ecx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push dword [esi + 0x2c]
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44a414]
jmp case.0x41150c.1
push dword [esi + 0x10]
call fcn.00404940
add esp, 4
jmp case.0x41056d.23
mov eax, dword [edi + 4]
mov dword [esi], eax
mov dword [esi + 0x3c], 0x34353a3b
xor ecx, ecx
mov eax, 0x803e6eaf
nop
nop
nop
nop
nop
nop
movzx edi, byte [esi + ecx + 0x3c]
mov edx, eax
and edx, 0x801e608a
mov ebx, ecx
and ebx, 1
or ebx, 0x59c09040
sub ebx, edx
lea edx, [edi + edi]
not edx
add edx, edi
and edx, 0x48
and edi, 0xffffffb7
or edi, edx
lea edx, [ebx + ebx]
not edx
add edx, ebx
and edx, 0x48
and ebx, 0xb7
or ebx, edx
xor ebx, edi
add bl, 0x72
mov byte [esi + ecx + 0x3c], bl
inc ecx
dec eax
cmp ecx, 4
jne 0x411770
mov ecx, dword [0x4504d8]
test ecx, ecx
mov eax, dword [esi + 0x28]
je 0x411801
mov edx, dword [esi + 0x3c]
xor edi, edi
mov ebx, dword [0x4504dc]
cmp dword [ebx + edi*8], 0xb62b8d10
je 0x4117e3
inc edi
cmp ecx, edi
jne 0x4117d3
jmp 0x411801
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x411801
push dword [esi]
push 1
push dword [0x4504e0]
push ecx
call fcn.00440d90
mov eax, dword [esi + 0x28]
add esp, 0x10
mov eax, dword [eax]
mov dword [esi], eax
mov dword [esi + 0x38], 0x34353a3b
xor ecx, ecx
mov eax, 0x803e6eaf
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esi + ecx + 0x38]
mov edx, eax
and edx, 0x801e608a
mov ebx, ecx
and ebx, 1
or ebx, 0x59c09040
sub ebx, edx
lea edx, [edi + edi]
not edx
add edx, edi
and edx, 0x48
and edi, 0xffffffb7
or edi, edx
lea edx, [ebx + ebx]
not edx
add edx, ebx
and edx, 0x48
and ebx, 0xb7
or ebx, edx
xor ebx, edi
add bl, 0x72
mov byte [esi + ecx + 0x38], bl
inc ecx
dec eax
cmp ecx, 4
jne 0x411820
mov ecx, dword [0x4504d8]
test ecx, ecx
je case.0x41150c.1
mov edx, dword [esi + 0x38]
xor edi, edi
mov ebx, dword [0x4504dc]
cmp dword [ebx + edi*8], 0xb62b8d10
je 0x411890
inc edi
cmp ecx, edi
jne 0x411880
jmp case.0x41150c.1
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.0x41150c.1
push dword [esi]
push 1
push dword [0x4504e0]
push ecx
call fcn.00440d90
add esp, 0x10
mov ecx, dword [esi + 0x40]
call fcn.0040d2c0
mov ecx, dword [esi + 0x54]
call fcn.0040d2c0
mov ecx, dword [esi + 0x58]
call fcn.0040d2c0
mov ecx, dword [esi + 0x5c]
call fcn.0040d2c0
mov ecx, dword [esi + 0x60]
call fcn.0040d2c0
mov ecx, dword [esi + 0x64]
call fcn.0040d2c0
mov al, 1
jmp 0x410c67
int3