Function at 0x40eb80
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x38
mov eax, dword [0x42758c]
push ebx
push ebp
xor ebp, ebp
or ebx, 0xffffffff
push esi
cmp eax, ebp
push edi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], ebx
je 0x40ecef
mov eax, dword [0x427580]
mov edi, dword [eax]
add eax, 4
cmp edi, ebp
mov dword [0x427580], eax
je 0x40ec69
push 2
push 5
call fcn.00403580
add esp, 8
cmp eax, ebp
je 0x40ebe1
cmp byte [eax], 0
je 0x40ebe1
push ebp
push edi
call fcn.00403a20
push eax
call fcn.00401e70
add esp, 0xc
mov eax, dword [0x42757c]
mov esi, dword [0x427578]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ebp
fild qword [esp + 0x38]
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], ebp
fild qword [esp + 0x38]
fmul qword [0x420510]
fdiv st(1)
call fcn.00419674
mov edx, dword [edi + 0xa]
mov dword [esp + 0x3c], ebp
add esi, edx
mov ebx, eax
mov dword [esp + 0x38], esi
mov dword [0x427578], esi
fild qword [esp + 0x38]
fmul qword [0x420510]
fdiv st(1)
call fcn.00419674
push eax
push ebx
push edi
fstp st(0)
call fcn.0040e5b0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40ec53
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x38
ret
push eax
call fcn.004012c0
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
mov eax, dword [0x427624]
mov esi, dword [sym.imp.USER32.dll_GetDlgItem]
cmp eax, ebp
mov dword [0x42765c], ebp
mov dword [0x42758c], ebp
je 0x40eca8
push 1
push 5
call fcn.00403580
mov ecx, dword [0x427624]
add esp, 8
push eax
push 0x417
push ecx
call esi
push eax
call fcn.00407a90
add esp, 8
cmp dword [0x4275ac], ebp
je 0x40ecd4
push 3
push 5
call fcn.00403580
mov edx, dword [0x4275ac]
add esp, 8
push eax
push 0x3e9
push edx
call esi
push eax
call fcn.00407a90
add esp, 8
cmp dword [0x427244], ebp
jne 0x40ece6
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x38
ret
push ebp
call fcn.00401e00
add esp, 4
mov eax, dword [0x4271b8]
mov dword [esp + 0x30], ebp
mov dword [esp + 0x10], ebx
mov byte [eax], 0
mov esi, dword [0x427248]
mov ecx, dword [0x4271d0]
cmp esi, ebp
je 0x40ed21
lea eax, [ecx + ecx*4 + 5]
xor edx, edx
lea eax, [eax + eax*4]
shl eax, 2
div esi
mov dword [esp + 0x14], eax
inc ecx
cmp ecx, esi
mov dword [0x4271d0], ecx
jae 0x40f7c8
mov eax, dword [0x4271cc]
push eax
mov ebp, eax
call fcn.00403690
mov dword [0x4271cc], eax
xor eax, eax
mov ax, word [ebp + 2]
push ebp
mov dword [esp + 0x28], eax
mov word [ebp + 2], 0
call fcn.0040d100
mov ecx, dword [0x4271bc]
mov ebx, eax
add esp, 8
mov dword [esp + 0x38], ebx
cmp byte [ecx], 0
je 0x40ef25
test byte [esp + 0x20], 2
je 0x40ee3c
mov edi, ecx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [0x4271b4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.00407860
test eax, eax
je 0x40edda
mov esi, dword [0x4271d0]
mov ecx, dword [0x427248]
cmp esi, ecx
mov eax, ebp
jge 0x40edda
mov edi, 0x100
mov ecx, dword [eax + 0x16]
push eax
or ecx, edi
mov dword [eax + 0x16], ecx
call fcn.00403690
mov ecx, dword [0x427248]
add esp, 4
inc esi
cmp esi, ecx
jl 0x40edbe
mov eax, dword [0x427550]
test byte [eax], 0x10
je 0x40ee36
mov ecx, dword [0x4271bc]
push 0
push ecx
call fcn.00401040
mov esi, eax
add esp, 8
cmp esi, 0xffffffff
je 0x40ee2e
push 0xfffffffffffffff8
push esi
call fcn.004011a0
lea edx, [esp + 0x48]
push 8
push edx
push esi
call fcn.004010c0
push esi
call fcn.004012c0
add esp, 0x18
cmp word [esp + 0x40], 0x7f7f
jne 0x40ee2e
test byte [esp + 0x42], 2
jne 0x40ef25
mov eax, dword [0x4271b4]
mov byte [eax], 0x30
mov ecx, dword [0x4271bc]
mov eax, dword [0x4271d0]
xor edx, edx
lea eax, [eax + eax*4 + 5]
lea eax, [eax + eax*4]
shl eax, 2
div dword [0x427248]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x16]
test ah, 1
jne 0x40f76d
test dword [0x4275f8], eax
je 0x40f76d
test ah, 2
jne 0x40ef43
test al, 0x40
mov edi, 1
je 0x40eea4
push 0
push ecx
call fcn.00401040
add esp, 8
cmp eax, 0xffffffff
je 0x40ee9e
push eax
call fcn.004012c0
add esp, 4
xor edi, edi
jmp 0x40ef0e
mov ecx, dword [0x4271bc]
test ebx, ebx
je 0x40eefd
push 0
push ecx
mov dword [esp + 0x34], 0
call fcn.00401040
mov esi, eax
add esp, 8
cmp esi, 0xffffffff
je 0x40eeee
push esi
call fcn.004011c0
mov ecx, dword [ebp + 0xe]
add esp, 4
cmp eax, ecx
jne 0x40eee5
lea ecx, [esp + 0x34]
lea edx, [esp + 0x2c]
push ecx
push edx
push esi
call fcn.004050b0
add esp, 0xc
push esi
call fcn.004012c0
add esp, 4
mov eax, dword [esp + 0x2c]
mov ecx, dword [ebp + 0x12]
cmp eax, ecx
jne 0x40eefd
xor edi, edi
jmp 0x40ef0e
test byte [ebp + 0x16], 6
je 0x40ef0e
push ebp
call fcn.0040d450
add esp, 4
mov edi, eax
test edi, edi
mov dword [0x42765c], 0
je 0x40ef51
mov eax, dword [0x427554]
test eax, eax
jne 0x40ef5c
mov eax, dword [0x4271d0]
mov ecx, dword [0x427248]
inc eax
cmp eax, ecx
mov dword [0x4271d0], eax
jb 0x40ed30
jmp 0x40f7c8
push ecx
call fcn.00402300
add esp, 4
jmp 0x40f76d
mov word [ebp + 2], 0x1f5
jmp 0x40f707
push 2
push 5
call fcn.00403580
add esp, 8
test eax, eax
je 0x40ef80
cmp byte [eax], 0
je 0x40ef80
mov ecx, dword [0x4271bc]
push ecx
call fcn.00401e70
add esp, 4
mov eax, dword [ebp + 0x16]
test ah, 0x10
je 0x40eff8
mov edx, dword [0x4271bc]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
cmp esi, 4
jle 0x40eff8
lea edx, [edx + esi - 4]
push str..reg
push edx
call fcn.004192a0
add esp, 8
test eax, eax
je 0x40eff8
mov eax, dword [0x4271bc]
push str..tlb
lea ecx, [eax + esi - 4]
push ecx
call fcn.004192a0
add esp, 8
test eax, eax
je 0x40eff8
mov edx, dword [0x4271bc]
push 0
push edx
call fcn.00401040
add esp, 8
cmp eax, 0xffffffff
je 0x40eff8
push eax
call fcn.004012c0
push 0
call fcn.0040c970
add esp, 8
mov eax, dword [0x4271bc]
push eax
call fcn.00402300
mov edi, dword [0x4271bc]
or ecx, 0xffffffff
xor eax, eax
push str..__A
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [0x4271b8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x4271b8]
push eax
call fcn.00401fc0
mov ecx, dword [0x4271b8]
push 0
push ecx
call fcn.00401040
add esp, 0x14
cmp eax, 0xffffffff
je 0x40f090
push eax
call fcn.004012c0
mov esi, dword [0x4271b8]
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, esi
push eax
mov dl, byte [ecx + esi - 1]
or ecx, 0xffffffff
inc dl
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [ecx + esi - 1], dl
mov eax, dword [0x4271b8]
push eax
call fcn.00401040
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40f050
mov eax, dword [ebp + 0x16]
test al, 0x20
je 0x40f0c3
push 0
push ebp
call fcn.00403a20
mov ecx, dword [0x427590]
mov edx, dword [0x4271b8]
push eax
push ecx
push edx
call fcn.0040ea70
add esp, 0x14
test eax, eax
je 0x40f7c8
jmp 0x40f639
test eax, 0x200000
je 0x40f0f8
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
sub esi, eax
shr esi, 1
add esi, eax
push esi
push eax
push ebp
call fcn.0040e5b0
add esp, 0xc
cmp eax, 0xffffffff
mov dword [esp + 0x1c], eax
je 0x40f7c8
mov ebx, esi
mov dword [esp + 0x14], ebx
jmp 0x40f0fc
mov ebx, dword [esp + 0x14]
mov eax, dword [0x4271b8]
push eax
call fcn.00401090
mov esi, eax
add esp, 4
cmp esi, 0xffffffff
mov dword [esp + 0x10], esi
jne 0x40f130
mov ecx, dword [0x4271b8]
mov dword [0x42765c], 0x11
push ecx
call fcn.0040a490
jmp 0x40f799
mov al, byte [esp + 0x20]
test al, 1
je 0x40f420
mov eax, dword [ebp + 0x20]
xor edx, edx
mov dx, word [ebp + 0x1e]
xor esi, esi
mov edi, dword [edx*4 + 0x427510]
add edi, 4
test eax, eax
jle 0x40f168
push edi
call fcn.00403690
add esp, 4
mov edi, eax
mov eax, dword [ebp + 0x20]
inc esi
cmp esi, eax
jl 0x40f155
mov eax, dword [edi + 0x16]
test al, 0x20
je 0x40f1ad
mov eax, dword [esp + 0x10]
push eax
call fcn.004012c0
push 0
push ebp
mov dword [esp + 0x1c], 0xffffffff
call fcn.00403a20
mov ecx, dword [0x427590]
mov edx, dword [0x4271b8]
push eax
push ecx
push edx
call fcn.0040ea70
add esp, 0x18
test eax, eax
je 0x40f79c
jmp 0x40f33c
test eax, 0x200000
je 0x40f1de
mov esi, dword [esp + 0x24]
sub esi, ebx
shr esi, 1
add esi, ebx
push esi
push ebx
push edi
call fcn.0040e5b0
add esp, 0xc
cmp eax, 0xffffffff
mov dword [esp + 0x18], eax
je 0x40f79c
mov ebx, esi
mov dword [esp + 0x14], ebx
jmp 0x40f1f7
mov eax, dword [edi + 6]
push eax
call fcn.0040b480
add esp, 4
mov dword [0x42765c], eax
test eax, eax
jne 0x40f79c
mov edx, dword [0x427224]
xor ecx, ecx
mov cx, word [ebp + 0x1e]
mov eax, dword [ecx*4 + 0x4274d0]
xor ecx, ecx
cmp edx, ecx
mov esi, dword [eax + 8]
mov ax, word [eax + 2]
mov dword [0x42720c], ecx
mov dword [0x427208], ecx
mov byte [0x4271e4], 0x39
je 0x40f29a
cmp ax, cx
je 0x40f29a
cmp esi, 2
je 0x40f29a
xor ebx, ebx
mov ecx, 5
test esi, esi
mov dword [0x427208], ecx
jne 0x40f268
xor ecx, ecx
mov ebx, 1
mov cl, byte [edx]
xor ecx, 0x6a
inc edx
cmp ecx, 0x1f
mov dword [0x427208], ecx
jle 0x40f268
mov ecx, 0x1f
mov dword [0x427208], ecx
xor eax, eax
test ecx, ecx
jle 0x40f28f
mov esi, edx
sub esi, 0x4271e8
mov dl, bl
add dl, al
xor dl, byte [esi + eax + 0x4271e8]
xor dl, 0x6a
mov byte [eax + 0x4271e8], dl
inc eax
cmp eax, ecx
jl 0x40f276
mov ebx, dword [esp + 0x14]
mov byte [ecx + 0x4271e8], 0
mov eax, dword [esp + 0x18]
cmp eax, 0xffffffff
jne 0x40f2a8
mov eax, dword [0x422040]
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [edi + 0xa]
lea edx, [esp + 0x30]
push edx
push ecx
push eax
push esi
call fcn.00403170
add esp, 0x14
test eax, eax
mov eax, dword [0x4275ec]
je 0x40f2e5
cmp eax, 2
je 0x40f788
mov dword [0x42765c], 0x1f
jmp 0x40f788
cmp eax, 2
je 0x40f788
mov eax, dword [esp + 0x18]
cmp eax, 0xffffffff
je 0x40f308
push eax
call fcn.004012c0
add esp, 4
mov dword [esp + 0x18], 0xffffffff
push esi
call fcn.004012c0
mov edx, dword [esp + 0x30]
mov eax, dword [edi + 0xe]
add esp, 4
cmp edx, eax
mov dword [esp + 0x10], 0xffffffff
jne 0x40f32f
mov eax, dword [esp + 0x34]
mov ecx, dword [edi + 0x12]
cmp eax, ecx
je 0x40f33c
call fcn.0040d5f0
test eax, eax
je 0x40f788
mov eax, dword [0x427550]
mov edx, dword [0x427224]
xor ecx, ecx
mov esi, dword [eax + 8]
mov ax, word [eax + 2]
cmp edx, ecx
mov dword [0x42720c], ecx
mov dword [0x427208], ecx
mov byte [0x4271e4], 0x39
je 0x40f3d7
cmp ax, cx
je 0x40f3d7
cmp esi, 2
je 0x40f3d7
xor ebx, ebx
mov ecx, 5
test esi, esi
mov dword [0x427208], ecx
jne 0x40f3a5
xor ecx, ecx
mov ebx, 1
mov cl, byte [edx]
xor ecx, 0x6a
inc edx
cmp ecx, 0x1f
mov dword [0x427208], ecx
jle 0x40f3a5
mov ecx, 0x1f
mov dword [0x427208], ecx
xor eax, eax
test ecx, ecx
jle 0x40f3cc
mov esi, edx
sub esi, 0x4271e8
mov dl, bl
add dl, al
xor dl, byte [esi + eax + 0x4271e8]
xor dl, 0x6a
mov byte [eax + 0x4271e8], dl
inc eax
cmp eax, ecx
jl 0x40f3b3
mov ebx, dword [esp + 0x14]
mov byte [ecx + 0x4271e8], 0
mov edi, dword [esp + 0x1c]
cmp edi, 0xffffffff
je 0x40f3ee
mov esi, dword [0x422040]
mov dword [0x422040], edi
jmp 0x40f3f2
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
mov ecx, dword [0x4271b8]
push eax
push ebx
push ecx
push ebp
call fcn.0040d670
add esp, 0x10
cmp edi, 0xffffffff
je 0x40f413
mov dword [0x422040], esi
test eax, eax
je 0x40f788
jmp 0x40f639
test al, 2
je 0x40f4cb
mov ecx, dword [0x42755c]
xor edi, edi
cmp ecx, edi
je 0x40f639
mov eax, dword [0x427558]
cmp eax, edi
je 0x40f639
push eax
push ecx
push esi
call fcn.00401100
add esp, 0xc
cmp eax, edi
mov dword [0x42765c], eax
jne 0x40f79c
mov edx, dword [ebp + 6]
push edx
call fcn.0040b480
add esp, 4
cmp eax, edi
mov dword [0x42765c], eax
jne 0x40f79c
mov ecx, dword [0x422040]
mov dword [0x42720c], edi
mov dword [0x427208], edi
mov byte [0x4271e4], 0x39
mov eax, dword [ebp + 0xa]
push edi
push edi
push eax
push ecx
push esi
call fcn.00403170
add esp, 0x14
test eax, eax
mov eax, dword [0x4275ec]
jne 0x40f5c3
cmp eax, 2
je 0x40f79c
push esi
call fcn.004012c0
add esp, 4
mov dword [esp + 0x10], 0xffffffff
jmp 0x40f639
mov ebx, dword [esp + 0x1c]
cmp ebx, 0xffffffff
jne 0x40f4ed
mov edx, dword [ebp + 6]
push edx
call fcn.0040b480
add esp, 4
mov dword [0x42765c], eax
test eax, eax
jne 0x40f7b2
mov ecx, dword [0x427224]
xor eax, eax
mov ax, word [ebp + 0x1e]
xor edx, edx
cmp ecx, edx
mov eax, dword [eax*4 + 0x4274d0]
mov edi, dword [eax + 8]
mov ax, word [eax + 2]
mov dword [0x42720c], edx
mov dword [0x427208], edx
mov byte [0x4271e4], 0x39
je 0x40f596
cmp ax, dx
je 0x40f596
cmp edi, 2
je 0x40f596
mov esi, 5
test edi, edi
mov dword [0x427208], esi
jne 0x40f55e
xor eax, eax
mov edx, 1
mov al, byte [ecx]
mov esi, eax
xor esi, 0x6a
inc ecx
cmp esi, 0x1f
mov dword [0x427208], esi
jle 0x40f55e
mov esi, 0x1f
mov dword [0x427208], esi
xor eax, eax
test esi, esi
jle 0x40f587
mov edi, ecx
sub edi, 0x4271e8
mov bl, byte [edi + eax + 0x4271e8]
mov cl, dl
add cl, al
xor bl, cl
xor bl, 0x6a
mov byte [eax + 0x4271e8], bl
inc eax
cmp eax, esi
jl 0x40f56c
mov ebx, dword [esp + 0x1c]
mov byte [esi + 0x4271e8], 0
mov esi, dword [esp + 0x10]
mov eax, dword [0x422040]
cmp ebx, 0xffffffff
je 0x40f5a2
mov eax, ebx
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x34]
push edx
mov edx, dword [ebp + 0xa]
push ecx
push edx
push eax
push esi
call fcn.00403170
add esp, 0x14
test eax, eax
mov eax, dword [0x4275ec]
je 0x40f5db
cmp eax, 2
je 0x40f79c
mov dword [0x42765c], 0x1f
jmp 0x40f79c
cmp eax, 2
je 0x40f79c
mov eax, dword [ebp + 0x16]
test al, 8
je 0x40f605
test al, 6
lea eax, [ebp + 0x38]
jne 0x40f5f5
lea eax, [ebp + 0x24]
lea ecx, [eax + 0x10]
lea edx, [eax + 8]
push ecx
push edx
push eax
push esi
call dword [sym.imp.KERNEL32.DLL_SetFileTime]
push esi
call fcn.004012c0
mov eax, dword [esp + 0x38]
mov ecx, dword [ebp + 0xe]
add esp, 4
cmp eax, ecx
mov dword [esp + 0x10], 0xffffffff
jne 0x40f62c
mov ecx, dword [esp + 0x2c]
mov eax, dword [ebp + 0x12]
cmp ecx, eax
je 0x40f639
call fcn.0040d5f0
test eax, eax
je 0x40f79c
cmp dword [ebp + 0x1a], 3
jne 0x40f677
mov edx, dword [0x4271bc]
push 0
push edx
call fcn.00401040
add esp, 8
cmp eax, 0xffffffff
je 0x40f677
push eax
call fcn.004012c0
mov eax, dword [0x4271bc]
push eax
call fcn.00402a70
mov ecx, dword [0x4271bc]
push ecx
call fcn.004012d0
add esp, 0xc
jmp 0x40f67b
mov eax, dword [esp + 0x38]
test eax, eax
je 0x40f6a6
mov edx, dword [0x4271b8]
mov eax, dword [0x4271bc]
push edx
push eax
call fcn.00410f90
mov dword [0x427654], 1
add esp, 8
mov word [ebp + 2], 0x1f4
jmp 0x40f6b6
mov ecx, dword [0x4271b8]
push ecx
push ebp
call fcn.0040f800
add esp, 8
mov ax, word [ebp + 2]
cmp ax, 0x1b
jne 0x40f6de
mov edx, dword [0x4271bc]
mov dword [0x42765c], 0x16
push edx
call fcn.0040a490
add esp, 4
jmp 0x40f788
test byte [esp + 0x20], 4
je 0x40f707
cmp ax, 0x1f4
push 0x100
jne 0x40f6f8
mov eax, dword [0x4271b8]
push eax
jmp 0x40f6ff
mov ecx, dword [0x4271bc]
push ecx
call fcn.00418990
add esp, 8
mov eax, dword [0x42765c]
test eax, eax
jne 0x40f788
mov edx, dword [0x4271b8]
mov al, byte [esp + 0x20]
test al, 2
mov byte [edx], 0
je 0x40f727
mov word [ebp + 2], 0
mov eax, dword [ebp + 0x1a]
test eax, eax
je 0x40f73b
mov eax, dword [ebp + 0x16]
test ah, 4
je 0x40f73b
call fcn.0040e180
cmp dword [ebp + 0x1a], 3
jne 0x40f74f
mov eax, dword [0x4271bc]
push eax
call fcn.00402780
add esp, 4
mov eax, dword [ebp + 0x16]
test ah, 8
je 0x40f75d
mov dword [0x4271e0], ebp
test byte [ebp + 0x16], 0x10
je 0x40f76d
mov dword [0x4275b8], 1
push ebp
call fcn.0040e8d0
mov ecx, dword [esp + 0x28]
push ecx
call fcn.00401e00
add esp, 8
mov dword [esp + 0x28], 1
mov eax, dword [esp + 0x18]
cmp eax, 0xffffffff
je 0x40f79c
mov edx, eax
push edx
call fcn.004012c0
add esp, 4
mov eax, dword [esp + 0x1c]
cmp eax, 0xffffffff
je 0x40f7ae
push eax
call fcn.004012c0
add esp, 4
mov esi, dword [esp + 0x10]
cmp esi, 0xffffffff
je 0x40f7c0
push esi
call fcn.004012c0
add esp, 4
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x40f7db
mov eax, dword [0x4271b8]
cmp byte [eax], 0
je 0x40f7db
push eax
call fcn.004190a0
add esp, 4
mov eax, dword [esp + 0x30]
test eax, eax
je 0x40f7f0
lea eax, [esp + 0x30]
push eax
call fcn.00402140
add esp, 4
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret