Function at 0x10005790
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0xe0
mov eax, dword [0x1002889c]
push ebx
xor ebx, ebx
cmp eax, ebx
mov byte [esp + 6], bl
mov byte [esp + 7], bl
jne 0x100057b4
xor al, al
pop ebx
add esp, 0xe0
ret
push ebp
push esi
mov ebp, dword [esp + 0xf0]
push edi
mov ecx, 0x19
xor eax, eax
lea edi, [esp + 0x8c]
mov esi, 1
rep stosd dword es:[edi], eax
mov ecx, 0x19
lea edi, [esp + 0x24]
rep stosd dword es:[edi], eax
mov ecx, 0x2b
mov edi, ebp
rep stosd dword es:[edi], eax
lea eax, [esp + 0x8c]
mov dword [0x10028204], esi
push eax
push 0x71
call fcn.10004bd0
add esp, 8
test eax, eax
je 0x10005945
lea ecx, [esp + 0x8c]
push ecx
call fcn.10003e50
add esp, 4
test eax, eax
je 0x10005945
mov byte [esp + 0x12], 1
xor eax, eax
mov dl, byte [esp + 0xa3]
mov cl, byte [esp + eax + 0x8c]
add dl, 0x73
xor cl, dl
mov byte [esp + eax + 0x8c], cl
inc eax
cmp eax, 0x17
jl 0x10005826
movzx cx, byte [esp + 0x8f]
mov al, byte [esp + 0xa3]
movzx dx, byte [esp + 0x90]
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x8d]
shl ecx, 8
mov byte [ebp + 0x32], al
add ecx, edx
mov byte [ebp + 0x33], ah
mov eax, dword [esp + 0x91]
mov word [ebp + 0x34], cx
xor cx, cx
mov cl, al
mov al, byte [esp + 0x93]
xor dx, dx
shl ecx, 8
mov dl, ah
add ecx, edx
movzx dx, byte [esp + 0x95]
mov word [ebp + 0x7a], cx
mov cl, byte [esp + 0x94]
mov byte [ebp + 0x38], al
mov eax, dword [esp + 0x96]
mov byte [ebp + 0x30], cl
xor cx, cx
shl edx, 8
mov cl, al
add edx, ecx
mov cl, byte [esp + 0x99]
mov word [ebp + 0x3c], dx
xor dx, dx
mov dl, ah
mov byte [ebp + 0x4c], cl
movzx ax, byte [esp + 0x98]
shl edx, 8
add edx, eax
movzx ax, byte [esp + 0x9b]
mov word [ebp + 0x3e], dx
movzx dx, byte [esp + 0x9a]
movzx cx, byte [esp + 0x9c]
shl edx, 8
add edx, eax
mov al, byte [esp + 0x9e]
mov word [ebp + 0x3a], dx
mov byte [ebp + 0x31], al
movzx dx, byte [esp + 0x9d]
mov eax, dword [esp + 0xa1]
shl ecx, 8
add ecx, edx
mov word [ebp], cx
xor cx, cx
mov cl, al
shl ecx, 8
xor dx, dx
mov dl, ah
lea eax, [ecx + edx + 0x235]
mov word [ebp + 0x54], ax
lea ecx, [esp + 0x8c]
mov dword [0x10028204], esi
push ecx
push 0x72
call fcn.10004bd0
add esp, 8
test eax, eax
je 0x10005ac3
lea edx, [esp + 0x8c]
push edx
call fcn.10003e50
add esp, 4
test eax, eax
je 0x10005ac3
xor eax, eax
mov cl, byte [esp + 0xa3]
mov dl, byte [esp + eax + 0x8c]
sub cl, 0x3b
xor dl, cl
mov byte [esp + eax + 0x8c], dl
inc eax
cmp eax, 0x17
jl 0x1000597f
mov eax, dword [esp + 0xa1]
mov cl, byte [esp + 0x13]
cmp ah, cl
jne 0x100059b4
inc byte [esp + 0x12]
jmp 0x100059ba
mov dword [0x10028224], ebx
mov ecx, dword [esp + 0x8d]
mov edx, dword [esp + 0x91]
mov dword [0x10028844], ecx
mov dword [0x10028848], edx
mov dword [ebp + 0x28], ecx
mov ecx, dword [esp + 0x96]
mov dword [ebp + 0x2c], edx
mov edx, dword [esp + 0x95]
and edx, 0xff
mov esi, ecx
shl edx, 8
and esi, 0xff
mov cl, byte [esp + 0x98]
add edx, esi
mov esi, dword [ebp + 0x50]
shl edx, 0x10
and esi, 0xffff
mov byte [ebp + 0x4d], ch
add edx, esi
mov byte [ebp + 0x56], cl
mov ecx, dword [esp + 0x9a]
mov dword [ebp + 0x50], edx
mov dl, byte [esp + 0x99]
and ecx, 0xff
mov byte [ebp + 0x57], dl
mov edx, dword [esp + 0x9b]
shl ecx, 8
and edx, 0xff
and eax, 0xff
add ecx, edx
mov edx, dword [esp + 0x9c]
shl ecx, 8
and edx, 0xff
add ecx, edx
mov edx, dword [esp + 0x9d]
shl ecx, 8
and edx, 0xff
add ecx, edx
mov edx, dword [esp + 0x9f]
mov dword [ebp + 0x44], ecx
mov ecx, dword [esp + 0x9e]
mov esi, ecx
mov edi, edx
and esi, 0xff
and edi, 0xff
shl esi, 8
add esi, edi
mov edi, dword [esp + 0xa0]
shl esi, 8
and edi, 0xff
add esi, edi
shl esi, 8
add esi, eax
xor ax, ax
mov al, cl
xor cx, cx
shl eax, 8
mov cl, dl
mov dword [ebp + 0x48], esi
add eax, ecx
mov esi, 1
mov word [ebp + 0x40], ax
lea edx, [esp + 0x24]
mov dword [0x10028204], esi
push edx
push 0x73
call fcn.10004bd0
add esp, 8
test eax, eax
je 0x10005b64
lea eax, [esp + 0x24]
push eax
call fcn.10003e50
add esp, 4
test eax, eax
je 0x10005b64
xor eax, eax
mov cl, byte [esp + 0x3b]
mov dl, byte [esp + eax + 0x24]
add cl, 0x3d
xor dl, cl
mov byte [esp + eax + 0x24], dl
inc eax
cmp eax, 0x17
jl 0x10005af3
mov dl, byte [esp + 0x13]
mov al, byte [esp + 0x3a]
cmp al, dl
jne 0x10005b1c
inc byte [esp + 0x12]
jmp 0x10005b22
mov dword [0x10028220], ebx
mov al, byte [esp + 0x28]
xor cx, cx
mov byte [ebp + 0x5a], al
mov eax, dword [esp + 0x29]
mov byte [ebp + 0x5b], al
mov byte [ebp + 0x5c], ah
mov eax, dword [esp + 0x2b]
xor dx, dx
mov cl, al
mov dl, ah
shl ecx, 8
add ecx, edx
mov edx, dword [esp + 0x31]
mov word [ebp + 0x58], cx
mov ecx, dword [esp + 0x2d]
lea eax, [ebp + 0x14]
mov byte [ebp + 0x21], bl
mov dword [eax], ecx
mov ecx, dword [esp + 0x35]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
lea edx, [esp + 0x24]
mov dword [0x10028204], esi
push edx
push 0x74
call fcn.10004bd0
add esp, 8
test eax, eax
je 0x10005c21
lea eax, [esp + 0x24]
push eax
call fcn.10003e50
add esp, 4
test eax, eax
je 0x10005c21
xor eax, eax
mov cl, byte [esp + 0x3b]
mov dl, byte [esp + eax + 0x24]
sub cl, 0x52
xor dl, cl
mov byte [esp + eax + 0x24], dl
inc eax
cmp eax, 0x17
jl 0x10005b98
mov dl, byte [esp + 0x13]
mov al, byte [esp + 0x3a]
cmp al, dl
jne 0x10005bc1
inc byte [esp + 0x12]
jmp 0x10005bc7
mov dword [0x1002821c], ebx
movzx ax, byte [esp + 0x27]
movzx cx, byte [esp + 0x28]
shl eax, 8
add eax, ecx
xor dx, dx
mov word [ebp + 0x7c], ax
mov eax, dword [esp + 0x29]
mov dl, al
lea ecx, [ebp + 0x5d]
movzx ax, ah
shl edx, 8
add edx, eax
mov eax, dword [esp + 0x2f]
mov word [ebp + 0x80], dx
mov edx, dword [esp + 0x2b]
mov dword [ecx], edx
mov edx, dword [esp + 0x33]
mov dword [ecx + 4], eax
movzx ax, byte [esp + 0x37]
mov dword [ecx + 8], edx
movzx cx, byte [esp + 0x38]
shl eax, 8
add eax, ecx
mov word [ebp + 0x7e], ax
lea edx, [esp + 0x24]
mov dword [0x10028204], esi
push edx
push 0x75
call fcn.10004bd0
add esp, 8
test eax, eax
je 0x10005d0c
lea eax, [esp + 0x24]
push eax
call fcn.10003e50
add esp, 4
test eax, eax
je 0x10005d0c
xor eax, eax
mov cl, byte [esp + 0x3b]
mov dl, byte [esp + eax + 0x24]
add cl, 0x21
xor dl, cl
mov byte [esp + eax + 0x24], dl
inc eax
cmp eax, 0x17
jl 0x10005c55
mov dl, byte [esp + 0x13]
mov al, byte [esp + 0x3a]
cmp al, dl
jne 0x10005c7e
inc byte [esp + 0x12]
jmp 0x10005c84
mov dword [0x10028218], ebx
mov ecx, dword [esp + 0x25]
mov edx, dword [esp + 0x29]
lea eax, [ebp + 0x69]
mov dword [ebp + 0x69], ecx
mov ecx, dword [esp + 0x2d]
mov dword [eax + 4], edx
xor dx, dx
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x31]
mov dl, al
xor cx, cx
movzx ax, ah
shl edx, 8
add edx, eax
mov eax, dword [esp + 0x33]
mov word [ebp + 0x36], dx
mov cl, al
xor dx, dx
shl ecx, 8
mov dl, ah
mov eax, dword [esp + 0x35]
add ecx, edx
xor dx, dx
mov word [ebp + 0x76], cx
xor cx, cx
mov cl, al
mov dl, ah
shl ecx, 8
add ecx, edx
mov edx, dword [ebp + 0x50]
mov eax, dword [esp + 0x38]
mov word [ebp + 0x78], cx
mov ecx, dword [esp + 0x37]
and edx, 0xffff0000
and ecx, 0xff
mov byte [ebp + 0x30], ah
shl ecx, 8
add ecx, edx
mov edx, eax
and edx, 0xff
add ecx, edx
mov dword [ebp + 0x50], ecx
lea eax, [esp + 0x24]
mov dword [0x10028204], esi
push eax
push 0x76
call fcn.10004bd0
add esp, 8
test eax, eax
je 0x10005d7d
lea ecx, [esp + 0x24]
push ecx
call fcn.10003e50
add esp, 4
test eax, eax
je 0x10005d7d
xor eax, eax
mov dl, byte [esp + 0x3b]
mov cl, byte [esp + eax + 0x24]
add dl, 0x59
xor cl, dl
mov byte [esp + eax + 0x24], cl
inc eax
cmp eax, 0x17
jl 0x10005d38
mov al, byte [esp + 0x13]
mov cl, byte [esp + 0x3a]
cmp cl, al
jne 0x10005d61
inc byte [esp + 0x12]
jmp 0x10005d67
mov dword [0x10028214], ebx
lea edi, [ebp + 0x82]
mov ecx, 5
lea esi, [esp + 0x25]
rep movsd dword es:[edi], dword [esi]
mov esi, 1
lea ecx, [esp + 0x24]
mov dword [0x10028204], esi
push ecx
push 0x77
call fcn.10004bd0
add esp, 8
test eax, eax
je 0x10005ffb
lea edx, [esp + 0x24]
push edx
call fcn.10003e50
add esp, 4
test eax, eax
je 0x10005ded
xor eax, eax
mov cl, byte [esp + 0x3b]
mov dl, byte [esp + eax + 0x24]
sub cl, 0x28
xor dl, cl
mov byte [esp + eax + 0x24], dl
inc eax
cmp eax, 0x17
jl 0x10005dad
mov dl, byte [esp + 0x13]
mov al, byte [esp + 0x3a]
cmp al, dl
jne 0x10005dd6
inc byte [esp + 0x12]
jmp 0x10005ddc
mov dword [0x10028210], ebx
lea edi, [ebp + 0x96]
mov ecx, 5
lea esi, [esp + 0x25]
rep movsd dword es:[edi], dword [esi]
cmp byte [esp + 0x12], 7
jne 0x10005ffb
mov al, byte [ebp + 0x57]
and al, 4
cmp al, 4
jne 0x10005e0f
call fcn.10006a90
mov byte [esp + 0x12], bl
jmp 0x10005f5d
lea ecx, [ebp + 0x14]
push ecx
call fcn.10005760
lea eax, [ebp + 0x28]
push eax
call fcn.100056b0
mov ecx, dword [esp + 0x100]
mov esi, 0xffffff72
add esp, 8
xor dl, dl
mov dword [ecx], ebx
lea eax, [ebp + 0x8e]
sub esi, ebp
mov edi, dword [ecx]
xor ebx, ebx
mov bl, byte [eax]
shl edi, 8
add edi, ebx
mov dword [ecx], edi
mov bl, byte [eax]
add dl, bl
inc eax
lea edi, [esi + eax]
cmp edi, 4
jl 0x10005e3c
mov byte [esp + 0x88], dl
xor eax, eax
mov edx, dword [esp + 0x88]
mov al, byte [ebp + 0x92]
and edx, 0xff
add edx, 0xa
cmp edx, eax
je 0x10005e7f
xor ebx, ebx
mov dword [ecx], ebx
jmp 0x10005e81
xor ebx, ebx
mov cx, word [ebp]
xor eax, eax
mov word [0x100288fc], cx
cmp byte [eax + ebp + 0x28], 0xff
jne 0x10005e9b
inc eax
cmp eax, 8
jl 0x10005e8e
cmp eax, 8
je 0x10005eb1
mov edx, dword [ebp + 0x28]
mov dword [0x1001f83c], edx
mov eax, dword [ebp + 0x2c]
mov dword [0x1001f840], eax
mov cl, byte [ebp + 0x5a]
mov byte [0x100288d8], cl
mov dl, byte [ebp + 0x57]
and dl, 8
cmp dl, 8
jne 0x10005eda
mov eax, dword [0x10028870]
push 2
push 0x3a
push 0x407
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
mov dword [0x10028228], ebx
mov dword [0x10028224], ebx
mov dword [0x10028220], ebx
mov dword [0x1002821c], ebx
mov dword [0x10028218], ebx
mov dword [0x10028214], ebx
mov dword [0x10028210], ebx
mov al, byte [ebp + 0x31]
test al, 4
jne 0x10005f5d
cmp word [ebp], bx
je 0x10005f5d
mov cl, byte [ebp + 0x32]
mov dl, byte [ebp + 0x33]
mov ax, word [ebp + 0x34]
mov byte [esp + 0x14], cl
mov cx, word [ebp + 0x36]
mov byte [esp + 0x15], dl
mov dx, word [ebp + 0x76]
mov word [esp + 0x18], cx
mov word [esp + 0x16], ax
mov ax, word [ebp + 0x78]
lea ecx, [esp + 0x14]
mov word [esp + 0x1e], dx
push ecx
mov word [esp + 0x24], ax
mov byte [esp + 0x1e], bl
mov byte [esp + 0x1f], bl
mov word [esp + 0x20], bx
call fcn.10006120
add esp, 4
cmp dword [0x100288f0], ebx
je 0x10005f91
mov dl, byte [ebp + 0x31]
push edx
call fcn.10005780
add esp, 4
test eax, eax
je 0x10005f7a
call fcn.10003ac0
mov ax, word [0x100288fc]
cmp ax, word [0x100288fe]
je 0x10005fce
mov dword [0x100288f0], ebx
jmp 0x10005fb9
cmp dword [0x100288f4], ebx
je 0x10005fb9
mov ecx, 2
mov edi, 0x1001f834
mov esi, 0x1001f83c
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
je 0x10005fb9
mov dword [0x100288f4], ebx
call fcn.10003ac0
mov ax, word [0x100288fc]
cmp ax, word [0x100288fe]
je 0x10005fce
mov word [0x100288fe], ax
mov ecx, 2
mov edi, 0x1001f834
mov esi, 0x1001f83c
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
je 0x10005ffb
mov ecx, dword [0x1001f83c]
mov edx, dword [0x1001f840]
mov dword [0x1001f834], ecx
mov dword [0x1001f838], edx
mov bl, byte [esp + 0x12]
pop edi
cmp bl, 7
pop esi
sbb eax, eax
pop ebp
and al, 0xfd
pop ebx
add eax, 4
add esp, 0xe0
ret