Function at 0x403d84
Capabilities:
Encode data using xor
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff004
push eax
add esp, 0xfffffb7c
push ebx
push esi
push edi
mov dword [ebp - 0x64], edx
mov esi, eax
mov eax, 0x4ab734
call fcn.004a0204
cmp dword [ebp - 0x64], 0
jne 0x403dbd
mov edx, dword [ebp - 0x60]
mov dword fs:[0], edx
mov eax, edx
jmp 0x4041c5
push pe_nt_image_headers32
lea ecx, [ebp - 0x284]
push ecx
push dword [0x4cfe40]
call sub.USER32.DLL_GetWindowTextA
mov eax, 0x214
call fcn.00413388
call fcn.004781d0
call fcn.004774b8
or word [esi + 0x4f14], 0x40
mov eax, dword [esi + 0x7644]
xor edx, edx
push edx
add eax, 7
push eax
mov eax, esi
xor edx, edx
call fcn.00409f94
xor ecx, ecx
mov edx, 0x73
mov eax, esi
call fcn.00401cb0
push 0
push 0
mov edx, 2
mov eax, esi
call fcn.00409f94
mov eax, esi
call fcn.0040a04c
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0x74], edx
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0x70], edx
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
mov eax, dword [ebp - 0x64]
call fcn.004041cc
mov dword [ebp - 0x64], eax
lea ebx, [esi + 0x5c50]
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 0
lea eax, [ebx + 0xc30]
mov edx, 0x14
call fcn.0040181c
mov word [ebx + 8], 0x8000
xor ecx, ecx
mov eax, esi
mov dword [ebx + 0x24], ecx
xor ecx, ecx
or word [esi + 0x5c58], 0x4000
push 0
push 0x4ab1f3
push 0
xor edx, edx
call fcn.004038f0
push 0
push 0
xor edx, edx
mov eax, esi
call fcn.00409f94
xor ecx, ecx
xor ebx, ebx
mov dword [ebp - 0x80], ecx
lea eax, [ebp - 0xc]
mov word [ebp - 0x50], 8
mov edx, dword [ebp - 0x64]
shl edx, 9
call fcn.00401c0c
inc dword [ebp - 0x44]
mov word [ebp - 0x50], 0x14
push dword [ebp - 8]
push 0
push dword [ebp - 0xc]
call fcn.0049fc54
mov dword [ebp - 0x84], 0xfffffff
add esp, 0xc
jmp 0x404065
call fcn.00410b54
cmp dword [ebp - 0x68], 0
jne 0x403f00
cmp dword [ebp - 0x6c], 0x200
jae 0x403f32
jmp 0x403f02
jge 0x403f32
mov eax, dword [ebp - 0x6c]
lea edx, [ebp - 0x1484]
mov edi, eax
mov eax, pe_nt_image_headers32
sub eax, edi
add edx, edi
push eax
push 0
push edx
call fcn.0049fc54
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
add esp, 0xc
jmp 0x403f42
sub dword [ebp - 0x6c], 0x200
sbb dword [ebp - 0x68], 0
mov edi, pe_nt_image_headers32
lea edx, [ebp - 0x1484]
mov ecx, edi
mov eax, esi
call fcn.00409e1c
mov edx, dword [ebp - 0x80]
shl edx, 9
add edx, dword [ebp - 0xc]
mov word [ebp - 0x50], 0x14
xor eax, eax
mov cl, byte [ebp + eax - 0x1484]
xor byte [edx + eax], cl
inc eax
cmp eax, 0x200
jl 0x403f62
lea edx, [ebp - 0x1484]
mov ecx, pe_nt_image_headers32
or eax, 0xffffffff
call fcn.00411a00
mov word [ebp - 0x50], 0x14
mov byte [ebp + ebx - 0x1284], al
inc ebx
shr eax, 8
mov byte [ebp + ebx - 0x1284], al
inc ebx
cmp ebx, 0x1000
jne 0x404011
mov word [ebp - 0x50], 0x20
lea eax, [ebp - 0x3c]
mov edx, esi
call fcn.0040fcbc
inc dword [ebp - 0x44]
mov edx, 2
mov word [ebp - 0x50], 0x2c
push 0
push 0
mov eax, esi
call fcn.00409f94
lea edx, [ebp - 0x1284]
mov ecx, ebx
mov eax, esi
call fcn.00409c58
lea edx, [ebp - 0x1284]
mov ecx, ebx
mov eax, dword [ebp - 0x84]
call fcn.00411a00
mov dword [ebp - 0x84], eax
xor ebx, ebx
dec dword [ebp - 0x44]
lea eax, [ebp - 0x3c]
mov edx, 2
call fcn.0040fd28
mov word [ebp - 0x50], 0x14
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x78]
and eax, 0xff
xor edx, edx
cmp edx, 0
jne 0x40404d
cmp eax, 0
jne 0x40404d
push 0
push pe_nt_image_headers32
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x78]
call fcn.004a439c
push edx
push eax
push dword [ebp - 0x70]
push dword [ebp - 0x74]
mov eax, 0x4ab1f3
call fcn.0045a0a4
add dword [ebp - 0x7c], 1
adc dword [ebp - 0x78], 0
inc dword [ebp - 0x80]
mov edx, dword [ebp - 0x80]
cmp edx, dword [ebp - 0x64]
jb 0x404065
xor ecx, ecx
mov dword [ebp - 0x80], ecx
cmp dword [ebp - 0x68], 0
jne 0x404077
cmp dword [ebp - 0x6c], 0
ja 0x403eea
jmp 0x40407d
jg 0x403eea
push 0
push 0
mov edx, 2
mov eax, esi
call fcn.00409f94
lea edx, [ebp - 0x1284]
mov ecx, ebx
mov eax, esi
call fcn.00409c58
lea edx, [ebp - 0x1284]
mov ecx, ebx
mov eax, dword [ebp - 0x84]
call fcn.00411a00
mov dword [ebp - 0x84], eax
mov eax, esi
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0xc]
shl ecx, 9
call fcn.00409c58
mov ecx, dword [ebp - 0x64]
shl ecx, 9
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x84]
call fcn.00411a00
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x84]
not eax
mov dword [esi + 0x5c68], eax
mov eax, esi
push dword [ebp - 0x70]
push dword [ebp - 0x74]
xor edx, edx
call fcn.00409f94
mov word [ebp - 0x50], 0x38
lea eax, [ebp - 0x2c]
xor edx, edx
call fcn.00412b10
add dword [ebp - 0x44], 2
mov word [ebp - 0x50], 0x14
mov edx, 0x4ab1f6
lea eax, [ebp - 0x2c]
mov ecx, 8
call fcn.00412d78
lea eax, [ebp - 0x2c]
mov edx, dword [ebp - 0x64]
call fcn.00412d00
push dword [ebp - 0x78]
push dword [ebp - 0x7c]
lea eax, [ebp - 0x2c]
call fcn.00412d50
lea edx, [esi + 0x6880]
lea eax, [ebp - 0x2c]
call fcn.00412e48
push 0
push 0x4ab1f3
push 0
push 0
push 2
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x78]
call fcn.004a439c
mov ecx, eax
mov edx, dword [ebp - 0x64]
shl edx, 9
add ecx, edx
xor edx, edx
mov eax, esi
call fcn.004038f0
push 0
push 0
mov edx, 2
mov eax, esi
call fcn.00409f94
lea eax, [ebp - 0x284]
call fcn.004781d0
call fcn.004774b8
sub dword [ebp - 0x44], 2
lea eax, [ebp - 0x2c]
mov edx, 2
call fcn.00412b90
dec dword [ebp - 0x44]
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.00401c84
mov ecx, dword [ebp - 0x60]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret