Function at 0x43fda7
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe0
push ebx
push esi
push edi
push 7
mov dword [ebp - 0x48], ecx
lea edi, [ebp - 0xc0]
pop ecx
mov esi, 0x460b2c
push 0xc
rep movsd dword es:[edi], dword [esi]
pop edx
mov ax, word [ebp + edx*2 - 0xc2]
xor word [ebp + edx*2 - 0xc0], ax
dec edx
test edx, edx
jg 0x43fdc9
mov ebx, dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov eax, 0x2cbb
xor word [ebp - 0xc0], ax
lea eax, [ebp - 0xc0]
push eax
call ebx
mov esi, 0x460444
mov dword [ebp - 0x44], eax
lea edi, [ebp - 0x5c]
push 5
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov ax, word [ebp + ecx*2 - 0x5e]
xor word [ebp + ecx*2 - 0x5c], ax
dec ecx
test ecx, ecx
jg 0x43fe0c
mov eax, 0x73b2
xor word [ebp - 0x5c], ax
lea eax, [ebp - 0x5c]
push eax
call ebx
mov ecx, dword [ebp - 0x48]
xor ebx, ebx
push ebx
mov esi, eax
mov dword [ebp - 0x3c], ebx
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x40], ebx
mov ecx, dword [ecx + 4]
push eax
push ebx
push ebx
push dword [ebp - 0x44]
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 8], ebx
mov edx, dword [ecx]
push ecx
mov dword [ebp - 4], esi
call dword [edx + 0x18]
mov edi, eax
test edi, edi
js 0x44031e
mov eax, dword [ebp - 0x3c]
lea edx, [ebp - 0x40]
push ebx
push edx
push ebx
mov ecx, dword [eax]
push esi
push eax
call dword [ecx + 0x4c]
mov edi, eax
test edi, edi
js 0x44031e
mov eax, dword [ebp - 0x40]
lea edx, [ebp - 8]
push edx
push ebx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x3c]
mov edi, eax
test edi, edi
js 0x44031e
push 0xb
pop ebx
xor eax, eax
mov word [ebp - 0x18], bx
push 8
mov word [ebp - 0x10], ax
lea edi, [ebp - 0xe0]
pop eax
mov ecx, eax
mov esi, 0x460d48
rep movsd dword es:[edi], dword [esi]
push 0xe
pop ecx
mov ax, word [ebp + ecx*2 - 0xe2]
xor word [ebp + ecx*2 - 0xe0], ax
dec ecx
test ecx, ecx
jg 0x43feb1
mov eax, 0x1776
lea edx, [ebp - 0x18]
xor word [ebp - 0xe0], ax
xor esi, esi
mov eax, dword [ebp - 8]
push esi
push edx
push esi
mov ecx, dword [eax]
lea edx, [ebp - 0xe0]
push edx
push eax
call dword [ecx + 0x14]
mov edi, eax
test edi, edi
js 0x440319
cmp dword [ebp + 0xc], esi
je 0x43ff6e
push 8
pop eax
push dword [ebp + 0xc]
lea ecx, [ebp + 0xc]
mov word [ebp - 0x18], ax
call fcn.00437f61
mov eax, dword [eax]
test eax, eax
je 0x43ff18
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
jmp 0x43ff1b
mov dword [ebp - 0x10], esi
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x43ff27
call fcn.00437ffd
push 6
pop ecx
mov esi, 0x4605d8
lea edi, [ebp - 0x34]
rep movsd dword es:[edi], dword [esi]
push 0xa
pop ecx
mov ax, word [ebp + ecx*2 - 0x36]
xor word [ebp + ecx*2 - 0x34], ax
dec ecx
test ecx, ecx
jg 0x43ff37
mov eax, 0x679b
lea edx, [ebp - 0x18]
xor word [ebp - 0x34], ax
mov eax, dword [ebp - 8]
push 0
push edx
push 0
mov ecx, dword [eax]
lea edx, [ebp - 0x34]
push edx
push eax
call dword [ecx + 0x14]
mov edi, eax
test edi, edi
js 0x440319
push 3
pop eax
push 6
pop ecx
mov esi, 0x460dac
mov word [ebp - 0x18], ax
mov eax, dword [ebp + 0x18]
lea edi, [ebp - 0xa4]
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x10], eax
movsw word es:[edi], word [esi]
mov ax, word [ebp + ebx*2 - 0xa6]
xor word [ebp + ebx*2 - 0xa4], ax
dec ebx
test ebx, ebx
jg 0x43ff8d
mov eax, 0x148d
lea edx, [ebp - 0x18]
xor word [ebp - 0xa4], ax
xor ebx, ebx
mov eax, dword [ebp - 8]
push ebx
push edx
push ebx
mov ecx, dword [eax]
lea edx, [ebp - 0xa4]
push edx
push eax
call dword [ecx + 0x14]
mov edi, eax
test edi, edi
js 0x440319
cmp dword [ebp + 0x20], ebx
je 0x44004a
push 8
pop eax
push dword [ebp + 0x20]
lea ecx, [ebp + 0xc]
mov word [ebp - 0x18], ax
call fcn.00437f61
mov eax, dword [eax]
test eax, eax
je 0x43fff4
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
jmp 0x43fff7
mov dword [ebp - 0x10], ebx
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x440003
call fcn.00437ffd
push 7
pop ecx
mov esi, 0x461004
lea edi, [ebp - 0x38]
rep movsd dword es:[edi], dword [esi]
push 0xd
pop ecx
movsw word es:[edi], word [esi]
mov ax, word [ebp + ecx*2 - 0x3a]
xor word [ebp + ecx*2 - 0x38], ax
dec ecx
test ecx, ecx
jg 0x440015
mov eax, 0x688
lea edx, [ebp - 0x18]
xor word [ebp - 0x38], ax
mov eax, dword [ebp - 8]
push ebx
push edx
push ebx
mov ecx, dword [eax]
lea edx, [ebp - 0x38]
push edx
push eax
call dword [ecx + 0x14]
mov edi, eax
test edi, edi
js 0x440319
cmp dword [ebp + 8], ebx
je 0x4400c1
push 8
pop eax
push dword [ebp + 8]
lea ecx, [ebp + 0xc]
mov word [ebp - 0x18], ax
call fcn.00437f61
mov eax, dword [eax]
test eax, eax
je 0x44006e
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
jmp 0x440071
mov dword [ebp - 0x10], ebx
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x44007d
call fcn.00437ffd
mov esi, 0x460df0
lea edi, [ebp - 0x24]
push 3
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov ax, word [ebp + ecx*2 - 0x26]
xor word [ebp + ecx*2 - 0x24], ax
dec ecx
test ecx, ecx
jg 0x44008c
mov eax, 0x1352
lea edx, [ebp - 0x18]
xor word [ebp - 0x24], ax
mov eax, dword [ebp - 8]
push ebx
push edx
push ebx
mov ecx, dword [eax]
lea edx, [ebp - 0x24]
push edx
push eax
call dword [ecx + 0x14]
mov edi, eax
test edi, edi
js 0x440319
cmp dword [ebp + 0x1c], ebx
je 0x44013a
push 8
pop eax
push dword [ebp + 0x1c]
lea ecx, [ebp + 0xc]
mov word [ebp - 0x18], ax
call fcn.00437f61
mov eax, dword [eax]
test eax, eax
je 0x4400e5
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
jmp 0x4400e8
mov dword [ebp - 0x10], ebx
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x4400f4
call fcn.00437ffd
mov esi, 0x460ce4
lea edi, [ebp - 0x2c]
push 7
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov ax, word [ebp + ecx*2 - 0x2e]
xor word [ebp + ecx*2 - 0x2c], ax
dec ecx
test ecx, ecx
jg 0x440105
mov eax, 0x1d34
lea edx, [ebp - 0x18]
xor word [ebp - 0x2c], ax
mov eax, dword [ebp - 8]
push ebx
push edx
push ebx
mov ecx, dword [eax]
lea edx, [ebp - 0x2c]
push edx
push eax
call dword [ecx + 0x14]
mov edi, eax
test edi, edi
js 0x440319
push 3
pop eax
push 6
pop ecx
mov esi, 0x460c58
mov word [ebp - 0x18], ax
mov eax, dword [ebp + 0x10]
lea edi, [ebp - 0x88]
rep movsd dword es:[edi], dword [esi]
push 0xa
mov dword [ebp - 0x10], eax
pop ecx
mov ax, word [ebp + ecx*2 - 0x8a]
xor word [ebp + ecx*2 - 0x88], ax
dec ecx
test ecx, ecx
jg 0x44015a
mov eax, 0x2583
lea edx, [ebp - 0x18]
xor word [ebp - 0x88], ax
mov eax, dword [ebp - 8]
push ebx
push edx
push ebx
mov ecx, dword [eax]
lea edx, [ebp - 0x88]
push edx
push eax
call dword [ecx + 0x14]
mov edi, eax
test edi, edi
js 0x440319
push 8
pop eax
push dword [ebp + 0x14]
lea ecx, [ebp + 0xc]
mov word [ebp - 0x18], ax
call fcn.00437f61
mov eax, dword [eax]
test eax, eax
je 0x4401ba
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
jmp 0x4401bd
mov dword [ebp - 0x10], ebx
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x4401c9
call fcn.00437ffd
push 5
pop ecx
mov esi, 0x460a74
lea edi, [ebp - 0x70]
rep movsd dword es:[edi], dword [esi]
push 8
pop esi
mov ecx, esi
mov ax, word [ebp + ecx*2 - 0x72]
xor word [ebp + ecx*2 - 0x70], ax
dec ecx
test ecx, ecx
jg 0x4401db
mov eax, 0x36a2
lea edx, [ebp - 0x18]
xor word [ebp - 0x70], ax
mov eax, dword [ebp - 8]
push ebx
push edx
push ebx
mov ecx, dword [eax]
lea edx, [ebp - 0x70]
push edx
push eax
call dword [ecx + 0x14]
mov edi, eax
test edi, edi
js 0x440319
cmp dword [ebp + 0x28], ebx
je 0x440287
push dword [ebp + 0x28]
lea ecx, [ebp + 0xc]
mov word [ebp - 0x18], si
call fcn.00437f61
mov eax, dword [eax]
test eax, eax
je 0x440231
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
jmp 0x440234
mov dword [ebp - 0x10], ebx
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x440240
call fcn.00437ffd
push 5
pop ecx
mov esi, 0x4604f8
lea edi, [ebp - 0x30]
rep movsd dword es:[edi], dword [esi]
push 8
pop esi
mov ecx, esi
mov ax, word [ebp + ecx*2 - 0x32]
xor word [ebp + ecx*2 - 0x30], ax
dec ecx
test ecx, ecx
jg 0x440252
mov eax, 0x714f
lea edx, [ebp - 0x18]
xor word [ebp - 0x30], ax
mov eax, dword [ebp - 8]
push ebx
push edx
push ebx
mov ecx, dword [eax]
lea edx, [ebp - 0x30]
push edx
push eax
call dword [ecx + 0x14]
mov edi, eax
test edi, edi
js 0x440319
cmp dword [ebp + 0x2c], ebx
je 0x4402f8
push dword [ebp + 0x2c]
lea ecx, [ebp + 0xc]
mov word [ebp - 0x18], si
call fcn.00437f61
mov eax, dword [eax]
test eax, eax
je 0x4402a8
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
jmp 0x4402ab
mov dword [ebp - 0x10], ebx
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x4402b7
call fcn.00437ffd
push 7
pop ecx
mov esi, 0x460470
lea edi, [ebp - 0x38]
rep movsd dword es:[edi], dword [esi]
push 0xc
pop ecx
mov ax, word [ebp + ecx*2 - 0x3a]
xor word [ebp + ecx*2 - 0x38], ax
dec ecx
test ecx, ecx
jg 0x4402c7
mov eax, 0x729f
lea edx, [ebp - 0x18]
xor word [ebp - 0x38], ax
mov eax, dword [ebp - 8]
push ebx
push edx
push ebx
mov ecx, dword [eax]
lea edx, [ebp - 0x38]
push edx
push eax
call dword [ecx + 0x14]
mov edi, eax
test edi, edi
js 0x440319
mov eax, dword [ebp - 0x48]
lea edx, [ebp - 0x4c]
push ebx
push edx
push dword [ebp - 8]
mov eax, dword [eax + 4]
push ebx
push ebx
mov ebx, dword [ebp - 4]
mov ecx, dword [eax]
push ebx
push dword [ebp - 0x44]
push eax
call dword [ecx + 0x60]
mov edi, eax
jmp 0x440320
mov ebx, dword [ebp - 4]
jmp 0x440320
mov ebx, esi
push dword [ebp - 0x44]
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
call esi
push ebx
call esi
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
je 0x44033f
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
and dword [ebp - 0x3c], 0
mov ecx, dword [ebp - 8]
test ecx, ecx
je 0x440350
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
and dword [ebp - 8], 0
mov ecx, dword [ebp - 0x40]
test ecx, ecx
je 0x440361
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
and dword [ebp - 0x40], 0
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x44036e
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
not edi
shr edi, 0x1f
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret 0x28