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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x150
mov esi, esp
mov eax, dword [ebp + 8]
mov dword [esi + 0x54], 0
mov dword [esi + 0x50], 0
mov dword [esi + 0x48], 0
mov dword [esi + 0x44], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x38], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x1c], 0x3c
mov dword [esi + 0x24], 0xffffffff
mov dword [esi + 0x30], 0xffffffff
mov dword [esi + 0x4c], 0xffffffff
mov edx, 0xfffffffe
mov ecx, dword [0x44af8c]
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + edx + 2], 0
lea edx, [edx + 2]
jne 0x40be70
sar edx, 1
lea edi, [esi + 0x1c]
push edi
push 0
push edx
push eax
call ecx
test eax, eax
je 0x40c3e2
mov eax, dword [0x44af80]
mov dword [esi], eax
mov dword [esi + 0x58], 0x93019161
mov dword [esi + 0x5c], 0x9f779d08
mov dword [esi + 0x60], 0x9b0c990a
mov dword [esi + 0x64], 0x87558579
mov dword [esi + 0x68], 0x83568159
mov dword [esi + 0x6c], 0x8fac8d52
mov dword [esi + 0x70], 0x8b7189a6
mov dword [esi + 0x74], 0xb722b561
mov dword [esi + 0x78], 0xb321b15a
mov dword [esi + 0x7c], 0xbf21bd2b
mov dword [esi + 0x80], 0xbb4eb99e
mov dword [esi + 0x84], 0xa784a546
mov dword [esi + 0x88], 0xa370a175
mov dword [esi + 0x8c], 0xaf7cad74
mov dword [esi + 0x90], 0xab88a96b
mov dword [esi + 0x94], 0x57bf5553
mov dword [esi + 0x98], 0x538e51c0
mov dword [esi + 0x9c], 0x5f995d8e
mov dword [esi + 0xa0], 0x5bc0597e
mov dword [esi + 0xa4], 0x47984584
mov dword [esi + 0xa8], 0x4360416d
mov dword [esi + 0xac], 0x4fdc4d81
mov dword [esi + 0xb0], 0x4bdc49de
mov dword [esi + 0xb4], 0x778d75a5
mov dword [esi + 0xb8], 0x73927199
mov dword [esi + 0xbc], 0x7f977d87
mov dword [esi + 0xc0], 0x7ba979e2
mov dword [esi + 0xc4], 0x67b965a5
mov dword [esi + 0xc8], 0x63b661bf
mov dword [esi + 0xcc], 0x6fb26dbf
mov dword [esi + 0xd0], 0x6b40694e
mov dword [esi + 0xd4], 0x17dc159f
mov dword [esi + 0xd8], 0x13e711ea
mov dword [esi + 0xdc], 0x1fc81de6
mov dword [esi + 0xe0], 0x1b8c193e
mov dword [esi + 0xe4], 0x79105f1
mov dword [esi + 0xe8], 0x32001e9
mov dword [esi + 0xec], 0xfe30dcb
mov dword [esi + 0xf0], 0xb9d09e3
mov dword [esi + 0xf4], 0x371f359b
mov dword [esi + 0xf8], 0x33fd3116
mov dword [esi + 0xfc], 0x3fae3dda
mov dword [esi + 0x100], 0x3baf39af
mov dword [esi + 0x104], 0x27f525d5
mov dword [esi + 0x108], 0x23f321f5
mov dword [esi + 0x10c], 0x2ffa2df9
mov dword [esi + 0x110], 0x2bfe29fe
mov dword [esi + 0x114], 0xd702d5fa
mov dword [esi + 0x118], 0xd3f0d106
mov dword [esi + 0x11c], 0xdf3fdd2f
mov dword [esi + 0x120], 0xdb3bd930
mov dword [esi + 0x124], 0xc72fc548
mov dword [esi + 0x128], 0xc31fc117
mov dword [esi + 0x12c], 0xcf15cd1f
mov dword [esi + 0x130], 0xcb15c918
mov dword [esi + 0x134], 0xf7f4f514
mov word [esi + 0x13c], 0
mov dword [esi + 0x138], 0
mov eax, 0x2596211f
mov edx, 0xda69dee0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esi + edx + 0x25962178]
mov ecx, eax
not ecx
and ecx, 0x563b5443
mov ebx, edx
or ebx, 0x563b5443
add ebx, ecx
mov ecx, 0xdf
sub ecx, ebx
add ebx, 0x25962120
xor ecx, ebx
and ecx, edi
xor ecx, ebx
mov dword [esi + 8], ecx
mov ecx, dword [esi + 8]
mov edi, ecx
xor edi, 0x2a
and ecx, 0x2a
lea ecx, [edi + ecx*2]
inc cl
mov byte [esi + edx + 0x25962178], cl
dec eax
inc edx
cmp eax, 0x25962039
jne 0x40c0d0
lea eax, [esi + 0x58]
push 0
push 0
push 0
push 0
push eax
call dword [esi]
mov dword [esi + 0x10], eax
test eax, eax
je 0x40c3e6
mov ebx, dword [esi + 0x30]
lea eax, [ebx + ebx]
add eax, 3
and eax, 0xfffffffc
call fcn.00408a30
mov edi, esp
and edi, 0xfffffff0
mov esp, edi
mov eax, ebx
and eax, 2
mov ecx, ebx
or ebx, 2
imul ebx, eax
xor eax, 2
and ecx, 0xfffffffd
imul ecx, eax
add ebx, ecx
mov dword [esi], ebx
mov eax, dword [esi + 0x2c]
mov ecx, ebx
shr ecx, 2
and ebx, 0xfffffffc
mov edx, edi
add edx, ebx
add ebx, eax
mov dword [esi + 0xc], edi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [esi]
not eax
mov dword [esi], eax
mov ecx, eax
or ecx, 0xfffffffc
mov dword [esi + 4], ecx
not ecx
mov dword [esi + 0x14], ecx
shr ecx, 1
mov dword [esi + 0x18], ebx
mov edi, edx
mov eax, dword [esi + 0x18]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov ecx, dword [esi]
or ecx, 0xfffffffd
mov edi, ecx
sub edi, dword [esi + 4]
je 0x40c24d
mov eax, dword [esi + 0x14]
add ecx, eax
and eax, 0xfffffffe
add ebx, eax
add edx, eax
mov eax, edi
and edi, 7
mov dword [esi + 4], eax
je 0x40c1f5
mov dword [esi], ecx
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [ebx + eax]
mov byte [edx + eax], cl
inc eax
cmp edi, eax
jne 0x40c1e0
add edx, eax
sub dword [esi + 4], eax
add ebx, eax
mov ecx, dword [esi]
cmp ecx, 7
mov ecx, dword [esi + 4]
jb 0x40c24d
xor edi, edi
nop
movzx eax, byte [ebx + edi]
mov byte [edx + edi], al
movzx eax, byte [ebx + edi + 1]
mov byte [edx + edi + 1], al
movzx eax, byte [ebx + edi + 2]
mov byte [edx + edi + 2], al
movzx eax, byte [ebx + edi + 3]
mov byte [edx + edi + 3], al
movzx eax, byte [ebx + edi + 4]
mov byte [edx + edi + 4], al
movzx eax, byte [ebx + edi + 5]
mov byte [edx + edi + 5], al
movzx eax, byte [ebx + edi + 6]
mov byte [edx + edi + 6], al
movzx eax, byte [ebx + edi + 7]
mov byte [edx + edi + 7], al
add edi, 8
cmp ecx, edi
jne 0x40c200
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0xc]
mov word [ecx + eax*2], 0
movzx eax, word [esi + 0x34]
push 0
push eax
push ecx
push dword [esi + 0x10]
call dword [0x44af84]
mov dword [esi + 0xc], eax
test eax, eax
je 0x40c3ef
mov eax, dword [0x44af88]
mov dword [esi], eax
mov edx, dword [esi + 0x28]
mov eax, dword [esi + 0x48]
mov dword [esi + 4], eax
mov dword [esi + 0x58], 0x5b175917
mov dword [esi + 0x5c], 0x47464538
mov word [esi + 0x60], 0
mov byte [esi + 0x62], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, eax
and edi, 0x60078198
mov ebx, ecx
xor ebx, 0x3003c0cc
add ebx, edi
movzx edi, byte [esi + ecx + 0x58]
xor ebx, edi
mov dword [esi + 8], ebx
mov edi, dword [esi + 8]
add edi, 0x65b2b345
mov ebx, edi
xor ebx, 0xafe5ba6b
and edi, 0x2fe5ba6b
lea edi, [ebx + edi*2]
inc edi
mov ebx, edi
xor ebx, 0xba
and edi, 0x3a
lea ebx, [ebx + edi*2]
inc bl
mov byte [esi + ecx + 0x58], bl
inc ecx
add eax, 2
cmp ecx, 0xb
jne 0x40c2b0
xor eax, eax
cmp edx, 2
sete al
shl eax, 0x17
push eax
push 0
push 0
push 0
push dword [esi + 4]
lea eax, [esi + 0x58]
push eax
push dword [esi + 0xc]
call dword [esi]
test eax, eax
je 0x40c408
mov ebx, eax
push 0
push 0
push 0
push 0
push 0
push 0
push eax
call dword [0x44af98]
test eax, eax
je 0x40c3fd
push 0
push ebx
call dword [0x44af9c]
test eax, eax
je 0x40c3fd
mov dword [esi + 0x58], 0
lea eax, [esi + 0x58]
push eax
push ebx
call dword [0x44afa0]
xor ecx, ecx
test eax, eax
mov dword [esi], ebx
je 0x40c417
mov eax, dword [esi + 0x58]
mov ebx, 0
test eax, eax
je 0x40c419
xor edx, edx
xor ecx, ecx
nop
nop
nop
nop
nop
nop
add eax, ecx
inc eax
push eax
mov ebx, edx
push edx
mov edi, ecx
call fcn.0043c360
add esp, 8
test eax, eax
je 0x40c413
mov dword [esi + 8], 0
mov ecx, eax
add ecx, edi
lea edx, [esi + 8]
push edx
push dword [esi + 0x58]
push ecx
push dword [esi]
mov ebx, eax
call dword [0x44afa4]
add edi, dword [esi + 8]
lea eax, [esi + 0x58]
push eax
push dword [esi]
call dword [0x44afa0]
test eax, eax
je 0x40c413
mov eax, dword [esi + 0x58]
mov edx, ebx
test eax, eax
mov ecx, edi
jne 0x40c390
jmp 0x40c419
xor eax, eax
jmp 0x40c44b
xor ecx, ecx
xor edi, edi
mov ebx, dword [ebp + 0x10]
jmp 0x40c43f
mov dword [esi + 4], 0
xor edi, edi
mov ebx, dword [ebp + 0x10]
jmp 0x40c433
mov dword [esi + 4], 0
xor edi, edi
jmp 0x40c420
mov dword [esi + 4], 0
xor edi, edi
jmp 0x40c427
mov ecx, edi
jmp 0x40c419
xor ebx, ebx
mov edi, ebx
mov dword [esi + 4], ecx
mov ebx, dword [esi]
push ebx
call dword [0x44afac]
mov ebx, dword [ebp + 0x10]
push dword [esi + 0xc]
call dword [0x44afac]
push dword [esi + 0x10]
call dword [0x44afac]
mov ecx, dword [esi + 4]
mov eax, dword [ebp + 0xc]
mov dword [eax], edi
mov dword [ebx], ecx
test edi, edi
setne al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret