Function at 0x10043ba1
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x10065f2b
call fcn.100641f8
push ecx
mov eax, 0x38b14
call fcn.10060460
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov edi, ecx
test dl, dl
je 0x10044567
cmp byte [ebp + 0x2c], 0
je 0x10044512
mov edi, dword [ebp + 0x18]
xor ebx, ebx
mov eax, dword [ebp + 0x30]
mov dword [ebp - 0x30], 0x709d
cmp dword [ebp - 0x30], 0x7100
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x2c], eax
jle 0x10043c1b
mov esi, ebx
mov edi, ebx
mov eax, esi
mov ecx, 0x10081de8
cdq
idiv edi
mov eax, edx
cdq
push edx
push eax
call fcn.1000d012
inc edi
cmp edi, 0x5f73
jl 0x10043bf2
inc esi
cmp esi, 0x26c5
jl 0x10043bf0
mov edi, dword [ebp + 0x18]
mov eax, dword [edi]
cmp eax, dword [edi + 4]
je 0x10044498
lea eax, [ebp - 0x50]
mov dword [ebp - 0x50], ebx
push eax
push 0x1000
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
call fcn.1003c337
mov dword [ebp - 4], ebx
mov eax, dword [ebp - 0x58]
sub eax, dword [ebp - 0x5c]
push dword [ebp - 0x5c]
sar eax, 1
push eax
push 0x126b2
push 0x151a7
call fcn.1002bafb
pop ecx
pop ecx
call eax
push dword [ebp - 0x5c]
lea ecx, [ebp - 0x94]
call fcn.1000d127
push 0x1adb4
mov byte [ebp - 4], 1
call fcn.1003be8a
pop ecx
movzx eax, ax
mov dword [ebp - 0x60], eax
lea eax, [ebp - 0x94]
push eax
push ecx
push 0x17bf
push 0x722a
push ebx
lea eax, [ebp - 0x60]
push eax
push ecx
call fcn.100429b9
add esp, 0x1c
lea eax, [ebp - 0x94]
mov edx, 0x4a6
push 0x7cb3
push 0x1f04
push 1
push ecx
push eax
push 0x412a
push 0x22c0
push 0x122
push 0x437c
push 1
push 0x1c33
push 1
push 0x2aee
mov ecx, 0x2659
call fcn.100425e9
mov dword [ebp - 0x24], 0x4ef3
add esp, 0x34
cmp dword [ebp - 0x24], 0x51af
jle 0x10043d60
mov edi, ebx
mov esi, ebx
mov eax, ebx
mov dword [ebp - 0x20], ebx
lea ecx, [eax + esi]
mov eax, edi
shl eax, cl
lea ecx, [ebp - 0x140]
cdq
push edx
push eax
call fcn.10001a6a
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10043d28
mov eax, dword [eax]
push eax
call fcn.1004c39e
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x140]
call fcn.1000205a
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 0x6ed1
jl 0x10043d09
inc esi
cmp esi, 0x6c6a
jl 0x10043d04
inc edi
cmp edi, 0x4db8
jl 0x10043d02
mov edi, dword [ebp + 0x18]
cmp dword [ebp - 0x24], 0x4e53
jge 0x10043d74
push str.wjtxutthe_ftxc_mofs_ene_eqwk_vclr
call fcn.1004c39e
pop ecx
mov dword [ebp - 4], 1
lea eax, [ebp - 0x94]
cmp dword [ebp - 0x80], 8
push ebx
cmovae eax, dword [ebp - 0x94]
push eax
push 0x126b2
push 0xd0c8
call fcn.1002bafb
pop ecx
pop ecx
call eax
push ecx
lea eax, [ebp - 0x60]
push eax
push 0x37ab
push 0x46b
push 1
lea edx, [ebp - 0x94]
call fcn.10042828
mov ecx, dword [edi + 4]
lea eax, [ebp - 0x64]
sub ecx, dword [edi]
add esp, 0x14
mov edx, dword [edi]
mov dword [ebp - 0x64], ebx
push eax
call fcn.100457b4
pop ecx
mov cl, bl
mov eax, ebx
mov byte [ebp - 0x15], cl
mov dword [ebp - 0x30], eax
cmp eax, 0x12c
jae 0x1004448d
test cl, cl
jne 0x1004448d
lea eax, [ebp - 0x94]
push eax
lea ecx, [ebp - 0xac]
call fcn.10001cd7
push 0x10
pop edx
lea ecx, [ebp - 0x110]
mov byte [ebp - 4], 4
call fcn.1003d169
push 1
push 1
push 0x571d
push 0x5910
lea edx, [ebp - 0x110]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xac]
call fcn.10042887
add esp, 0x10
mov dword [ebp - 0x44], 0x4b00dd03
mov dword [ebp - 0x40], 0x1d015602
mov ecx, ebx
mov dword [ebp - 0x3c], 0xb73c3d03
push 0x65
pop eax
push 2
mov word [ebp - 0x76], ax
pop esi
cmp esi, 8
jne 0x10043e69
push 4
pop ecx
push 0xa
pop esi
jmp 0x10043e92
movzx edx, byte [ebp + esi - 0x43]
mov eax, esi
sub eax, ecx
movzx eax, byte [ebp + eax - 0x46]
movzx ecx, word [ebp + eax*2 - 0x7c]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [ebp + esi - 0x44]
add ecx, edx
mov word [ebp + eax*2 - 0x7c], cx
mov ecx, ebx
add esi, 2
cmp esi, 0xc
jb 0x10043e5c
xor eax, eax
mov dword [ebp - 0xc8], 7
mov word [ebp - 0x74], ax
lea ecx, [ebp - 0xdc]
mov word [ebp - 0xdc], ax
lea eax, [ebp - 0x7c]
push eax
mov dword [ebp - 0xcc], ebx
call fcn.1000d26b
push ecx
push ecx
lea eax, [ebp - 0xdc]
mov byte [ebp - 4], 6
push eax
lea ecx, [ebp - 0xac]
call fcn.100130b1
push ebx
push 1
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 5
call fcn.1000232a
xor eax, eax
lea edi, [ebp - 0x7c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [ebp - 0x20], 0x60ac
cmp dword [ebp - 0x20], 0x63b4
jle 0x10043f3d
mov esi, ebx
mov edi, ebx
mov ecx, edi
mov eax, esi
shl eax, cl
mov ecx, 0x10081de8
cdq
push edx
push eax
call fcn.1000d012
inc edi
cmp edi, 0x7e66
jl 0x10043f0d
inc esi
cmp esi, 0x79fb
jl 0x10043f0b
push 0x119f
call dword [sym.imp.USER32.dll_GetQueueStatus]
cmp dword [ebp - 0x98], 8
lea eax, [ebp - 0xac]
push ebx
cmovae eax, dword [ebp - 0xac]
push 0x80
push 2
push ebx
push ebx
push 0x40000000
push eax
push 0x126b2
push 0x15ded
call fcn.1002bafb
pop ecx
pop ecx
call eax
mov esi, eax
mov byte [ebp - 4], 7
cmp dword [ebp - 0x20], 0x5f98
mov dword [ebp - 0x24], esi
jge 0x10043f95
mov edx, str.wxgagkimk_mpnkelud_kxzbvfrkt_nixqhkssx
mov ecx, 0x10081de8
call fcn.1000ff9e
mov edi, dword [ebp + 0x18]
mov dword [ebp - 4], 5
cmp esi, 0xffffffff
je 0x10044461
push ebx
lea eax, [ebp - 0xe0]
push eax
push dword [ebp - 0x64]
push dword [edi]
push esi
push 0x126b2
push 0x18f05
call fcn.1002bafb
pop ecx
pop ecx
call eax
push esi
test eax, eax
push 0x126b2
push 0x17056
setne bl
call fcn.1002bafb
pop ecx
pop ecx
call eax
test bl, bl
je 0x1004445f
xor eax, eax
mov word [ebp - 0x28], 0x3200
push 0x22
pop esi
mov word [ebp - 0x46], ax
lea ecx, [ebp - 0xc4]
mov word [ebp - 0xc4], ax
xor ebx, ebx
lea eax, [ebp - 0x48]
mov word [ebp - 0x48], si
push eax
mov dword [ebp - 0xb0], 7
mov dword [ebp - 0xb4], ebx
call fcn.1000d26b
push 0x5580
push ecx
lea eax, [ebp - 0xc4]
mov byte [ebp - 4], 9
push eax
lea eax, [ebp - 0xac]
mov dword [ebp - 0x48], ebx
push eax
push 1
push 0x79d9
push ecx
call fcn.100429b9
add esp, 0x1c
mov word [ebp - 0x70], si
mov dword [ebp - 0x38], 0x201b300
mov dword [ebp - 0x34], 0x7c030f02
push 2
pop esi
movzx eax, byte [ebp + esi - 0x3a]
movzx edx, byte [ebp + esi - 0x37]
movzx ecx, word [ebp + eax*2 - 0x70]
mov eax, edx
and eax, ecx
add eax, eax
sub edx, eax
movzx eax, byte [ebp + esi - 0x38]
add edx, ecx
add esi, 2
mov word [ebp + eax*2 - 0x70], dx
cmp esi, 8
jb 0x10044065
xor eax, eax
mov dword [ebp - 0xe4], 7
mov word [ebp - 0x68], ax
lea ecx, [ebp - 0xf8]
mov word [ebp - 0xf8], ax
lea eax, [ebp - 0x70]
push eax
mov dword [ebp - 0xe8], ebx
call fcn.1000d26b
push ecx
push ecx
lea eax, [ebp - 0xf8]
mov byte [ebp - 4], 0xa
push eax
lea ecx, [ebp - 0xc4]
call fcn.100130b1
push ebx
push 1
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 9
call fcn.1000232a
xor eax, eax
lea edi, [ebp - 0x70]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [ebp - 0x1c], 0x573b
cmp dword [ebp - 0x1c], 0x575c
jle 0x1004415d
mov edi, ebx
mov esi, ebx
mov eax, ebx
mov dword [ebp - 0x24], 0x54e0
mov dword [ebp - 0x20], eax
or eax, edi
lea ecx, [ebp - 0x128]
cdq
push edx
push eax
call fcn.10001a6a
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10044129
mov eax, dword [eax]
push eax
call fcn.1004c39e
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x128]
call fcn.1000205a
mov eax, dword [ebp - 0x20]
add eax, esi
dec dword [ebp - 0x24]
mov dword [ebp - 0x20], eax
jne 0x1004410f
inc esi
cmp esi, 0x4389
jl 0x10044103
inc edi
cmp edi, 0x5f4b
jl 0x10044101
lea edx, [ebp - 0x94]
lea ecx, [ebp - 0xc4]
call fcn.10041fe9
cmp dword [ebp - 0x1c], 0x53a7
mov ecx, dword [ebp + 0x30]
mov dword [ecx], eax
jge 0x1004441a
mov dword [ebp - 0x2c], 0x1ac5
cmp dword [ebp - 0x2c], 0xc6c
jge 0x1004440f
lea eax, [ebp - 0x4c]
push eax
push 0x1006db38
call fcn.1004be5b
mov edi, dword [ebp - 0x4c]
mov eax, edi
imul eax, edi
pop ecx
pop ecx
mov ecx, ebx
mov dword [ebp - 0x20], ecx
test eax, eax
jle 0x10044205
lea esi, [ebp - 0x38b24]
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x2c], ebx
test eax, eax
jle 0x100441ef
mov ebx, esi
mov esi, dword [ebp - 0x2c]
push ebx
push 0x1006db38
call fcn.1004be5b
mov edi, dword [ebp - 0x4c]
inc esi
mov eax, edi
add ebx, 4
imul eax, edi
pop ecx
pop ecx
cmp esi, eax
jl 0x100441ca
mov esi, dword [ebp - 0x24]
xor ebx, ebx
mov ecx, dword [ebp - 0x20]
mov eax, edi
inc ecx
imul eax, edi
add esi, 0x2d8
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x24], esi
cmp ecx, eax
jl 0x100441be
mov esi, edi
imul esi, edi
mov dword [ebp - 0x30], esi
test esi, esi
jle 0x100442eb
lea eax, [ebp - 0x18594]
mov dword [ebp - 0x20], esi
sub eax, esi
lea edi, [ebp - 0x82c4]
mov dword [ebp - 0x2c], eax
sub edi, esi
lea eax, [ebp - 0x1042c]
mov ecx, esi
sub eax, esi
mov esi, dword [ebp - 0x2c]
mov dword [ebp - 0x50], eax
and dword [ebp - 0x2c], 0
lea eax, [ebp - 0x82c4]
add eax, ecx
mov dword [ebp - 0x28], ebx
lea edx, [edi + ecx]
mov dword [ebp - 0x1c], edx
mov edx, eax
sub edx, dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], eax
cmova edx, dword [ebp - 0x2c]
test edx, edx
je 0x1004426e
mov eax, dword [ebp - 0x1c]
mov byte [eax], bl
inc eax
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], edx
jne 0x10044263
and dword [ebp - 0x2c], 0
lea eax, [ebp - 0x18594]
add eax, ecx
mov dword [ebp - 0x28], ebx
lea edx, [esi + ecx]
mov dword [ebp - 0x1c], edx
mov edx, eax
sub edx, dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], eax
cmova edx, dword [ebp - 0x2c]
test edx, edx
je 0x100442a1
mov eax, dword [ebp - 0x1c]
mov byte [eax], bl
inc eax
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], edx
jne 0x10044296
mov edx, dword [ebp - 0x50]
lea eax, [ebp - 0x1042c]
and dword [ebp - 0x2c], 0
add edx, ecx
add eax, ecx
mov dword [ebp - 0x1c], edx
mov edx, eax
mov dword [ebp - 0x28], ebx
sub edx, dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], eax
cmova edx, dword [ebp - 0x2c]
test edx, edx
je 0x100442d6
mov eax, dword [ebp - 0x1c]
mov byte [eax], bl
inc eax
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], edx
jne 0x100442cb
add ecx, 0xb6
dec dword [ebp - 0x20]
jne 0x1004423b
mov esi, dword [ebp - 0x30]
mov edi, dword [ebp - 0x4c]
mov dword [ebp - 0x24], ebx
mov cl, 1
mov byte [ebp - 0x15], cl
test esi, esi
jle 0x10044404
mov edx, ebx
mov dword [ebp - 0x20], ebx
test cl, cl
je 0x100443fd
mov eax, ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x1c], eax
test cl, cl
je 0x100443e1
add eax, edx
mov eax, dword [ebp + eax*4 - 0x38b24]
mov dword [ebp - 0x30], eax
test eax, eax
je 0x100443cb
lea ecx, [eax + edx]
cmp byte [ebp + ecx - 0x82c5], 0
je 0x1004436e
mov byte [ebp - 0x15], bl
jmp 0x10044376
mov byte [ebp + ecx - 0x82c5], 1
add eax, dword [ebp - 0x28]
cmp byte [ebp + eax - 0x18595], 0
je 0x10044388
mov byte [ebp - 0x15], bl
jmp 0x10044390
mov byte [ebp + eax - 0x18595], 1
mov eax, dword [ebp - 0x24]
cdq
idiv edi
mov ecx, eax
mov eax, dword [ebp - 0x1c]
cdq
idiv edi
mov edx, dword [ebp - 0x20]
imul ecx, edi
add ecx, eax
imul eax, ecx, 0xb6
add eax, dword [ebp - 0x30]
cmp byte [ebp + eax - 0x1042d], 0
je 0x100443c0
mov cl, bl
mov byte [ebp - 0x15], cl
jmp 0x100443cb
mov cl, byte [ebp - 0x15]
mov byte [ebp + eax - 0x1042d], 1
mov eax, dword [ebp - 0x1c]
add dword [ebp - 0x28], 0xb6
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, esi
jl 0x10044310
mov eax, dword [ebp - 0x24]
add edx, 0xb6
inc eax
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x24], eax
cmp eax, esi
jl 0x10044300
test cl, cl
jne 0x10044404
push str.INCORRECT_n
jmp 0x10044409
push str.CORRECT_n
call fcn.1004c39e
pop ecx
push str.abcqp_dldfzjceb_xaog
call fcn.1004c39e
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xc4]
call fcn.1000232a
push ebx
push 1
lea ecx, [ebp - 0x110]
call fcn.1000232a
push ebx
push 1
lea ecx, [ebp - 0xac]
call fcn.1000232a
push ebx
push 1
lea ecx, [ebp - 0x94]
call fcn.1000232a
lea ecx, [ebp - 0x5c]
call fcn.1001645c
jmp 0x1004463c
xor ebx, ebx
push ebx
push 1
lea ecx, [ebp - 0x110]
call fcn.1000232a
push ebx
push 1
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 1
call fcn.1000232a
mov eax, dword [ebp - 0x30]
mov cl, byte [ebp - 0x15]
inc eax
jmp 0x10043ddb
mov eax, dword [ebp + 0x30]
mov dword [eax], 2
jmp 0x10044444
mov dword [ebp - 0x2c], 0x44be
cmp dword [ebp - 0x2c], 0x44ec
jle 0x10044504
mov edi, ebx
mov esi, ebx
mov dword [ebp - 0x30], ebx
mov ebx, esi
mov esi, 0x1da6
mov eax, edi
mov ecx, 0x10081de8
xor eax, ebx
cdq
push edx
push eax
call fcn.1000d012
dec ebx
dec esi
jne 0x100444b6
mov esi, dword [ebp - 0x30]
inc esi
mov dword [ebp - 0x30], esi
cmp esi, 0x3415
jl 0x100444af
inc edi
push 0
pop ebx
cmp edi, 0x2d6d
jl 0x100444aa
push 0x1e84
push 0x1848
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov eax, dword [ebp + 0x30]
mov dword [eax], 1
jmp 0x1004463c
mov eax, dword [edi]
xor edx, edx
mov eax, dword [edi]
mov eax, dword [edi]
mov eax, dword [edi]
mov eax, dword [edi]
mov eax, dword [edi]
mov eax, dword [edi]
mov esi, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x20]
mov eax, dword [esi]
mov eax, dword [edi]
mov eax, dword [edi]
mov eax, dword [edi]
mov eax, dword [edi]
mov eax, dword [esi]
mov eax, dword [edi]
mov eax, dword [edi]
mov eax, dword [ecx]
mov eax, dword [ecx]
mov ecx, dword [ecx]
imul ecx, dword [edi]
mov eax, dword [ebp + 0x10]
mov dword [eax], ecx
mov ecx, dword [eax]
mov eax, dword [esi]
cmp ecx, eax
mov eax, dword [ebp + 0x34]
setge dl
mov dword [eax], edx
mov eax, dword [ebp + 0x28]
mov dword [eax], 0x96a4
mov ecx, dword [esi]
mov eax, dword [ebp + 0x38]
jmp 0x10044619
mov dword [ebp - 0x24], 0x2b30
xor ebx, ebx
cmp dword [ebp - 0x24], 0x2df9
jle 0x100445f1
mov esi, ebx
mov dword [ebp - 0x20], ebx
mov ecx, esi
mov dword [ebp - 0x30], 0x713b
mov dword [ebp - 0x1c], ecx
mov edi, ebx
mov esi, ebx
mov eax, edi
cdq
idiv esi
xor edx, ecx
lea ecx, [ebp - 0x158]
mov eax, edx
cdq
push edx
push eax
call fcn.10001a6a
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x100445af
mov eax, dword [eax]
push eax
call fcn.1004c39e
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x158]
call fcn.1000205a
mov ecx, dword [ebp - 0x1c]
inc esi
cmp esi, 0x5d9c
jl 0x1004458e
inc edi
cmp edi, 0xc69
jl 0x1004458c
dec ecx
dec dword [ebp - 0x30]
mov dword [ebp - 0x1c], ecx
jne 0x1004458a
mov esi, dword [ebp - 0x20]
inc esi
mov dword [ebp - 0x20], esi
cmp esi, 0x6853
jl 0x1004457e
cmp dword [ebp - 0x24], 0x291e
jge 0x10044605
push str.vzwb_loxfcg_rndkc_wcmkglzx_mwgqokqv_yhuzvvp_xfhzaguko_gijwi_nnbzfzxb_wpiuvixke_tdj_ebqjhgynk_essjmmo
call fcn.1004c39e
pop ecx
cmp byte [ebp + 0x24], 0
je 0x1004461d
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
mov eax, dword [ebp + 0x14]
sar ecx, 2
mov dword [eax], ecx
jmp 0x1004463c
mov edx, dword [ebp + 0x1c]
mov dword [edx], ebx
cmp dword [edx], 3
jge 0x1004463c
mov esi, dword [ebp + 8]
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0xfffffffd
inc dword [edx]
cmp dword [edx], 3
jl 0x1004462a
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret