Function at 0x10023b86
Capabilities:
Log keystrokes
Set thread local storage value

Disassembly:
mov eax, 0x1006498d
call fcn.10063468
sub esp, 0x128
cmp byte [ebp + 0xc], 0
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x4c], edi
je 0x100245fa
mov esi, dword [ebp + 0x14]
xor ebx, ebx
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x60], edi
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x88], ebx
mov dword [ebp - 4], 2
lea ecx, [ebp - 0xbc]
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x48], 0xfffffffa
push 1
mov dword [ebp - 0xac], eax
call fcn.10001ed2
push 0x716b
push ebx
lea eax, [ebp - 0x9c]
mov byte [ebp - 4], 3
push 0x378c
push eax
lea edx, [ebp - 0xbc]
mov ecx, 0x7873
call fcn.1002465b
add esp, 0x10
mov dword [ebp - 0x48], 0xffffffee
jmp 0x10023d20
mov dword [ebp - 0x24], ebx
jmp 0x10023c3d
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x6c], 0xf251d69f
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 3
jl 0x10023c2f
mov dword [ebp - 0x6c], 0x15
jmp 0x10023d03
push 1
lea ecx, [ebp - 0xdc]
call fcn.10001ed2
push 2
lea ecx, [ebp - 0xe8]
mov byte [ebp - 4], 4
call fcn.10001ed2
push ecx
push ecx
lea eax, [ebp - 0xdc]
mov byte [ebp - 4], 5
mov dword [ebp - 0x14], 4
lea edx, [ebp - 0x44]
push eax
call fcn.10024e10
add esp, 0xc
mov dword [ebp - 0x44], ebx
jmp 0x10023ca4
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0xe8]
mov dword [eax + ecx*4], 0x7392
inc dword [ebp - 0x44]
cmp dword [ebp - 0x44], 2
jl 0x10023c91
mov eax, dword [ebp - 0x6c]
cmp dword [ebp - 0x64], ebx
je 0x10023cbc
cmp dword [ebp - 0x6c], ebx
je 0x10023cbc
xor edx, edx
inc edx
jmp 0x10023cbe
mov edx, ebx
mov eax, dword [ebp - 0x64]
xor ecx, ecx
mov eax, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x6c]
cmp edx, eax
mov eax, dword [ebp - 0xbc]
sete cl
cmp ecx, 0xe55a4419
sbb ecx, ecx
inc ecx
mov dword [eax], ecx
lea ecx, [ebp - 0xe8]
mov dword [ebp - 0x14], 1
call fcn.10001f55
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 3
call fcn.10001f55
dec dword [ebp - 0x6c]
cmp dword [ebp - 0x6c], 0xfffffffd
jge 0x10023c4f
push 0x41eb
push ecx
push 1
call fcn.1002177f
add esp, 0xc
inc dword [ebp - 0x48]
cmp dword [ebp - 0x48], 0x1a
je 0x10023c2a
lea eax, [ebp - 0x48]
xor cl, cl
push eax
lea edx, [ebp - 0xbc]
call fcn.10021a01
pop ecx
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 2
call fcn.10001f55
mov eax, dword [esi + 0x10]
xor dl, dl
push 0x708c
mov ecx, 0x194e
mov dword [ebp - 0x94], eax
call fcn.10021ebf
cmp dword [edi + 0x14], 8
pop ecx
jb 0x10023d70
mov eax, dword [edi]
jmp 0x10023d72
mov eax, edi
push dword [edi + 0x10]
mov ecx, esi
push ebx
push eax
call fcn.1001db08
mov esi, ebx
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x58], eax
cmp esi, 0xffffffff
je 0x10024127
cmp esi, dword [ebp - 0x94]
jae 0x10024127
mov dword [ebp - 0x50], 9
mov dword [ebp - 0x20], 0x4d5
cmp dword [ebp - 0x20], 0x78f
jle 0x10023de8
push ebx
push 0x9fd
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov esi, ebx
mov edi, ebx
mov eax, edi
mov ecx, 0x10080838
or eax, esi
cdq
push edx
push eax
call fcn.10010b40
inc edi
cmp edi, 0x599b
jl 0x10023dc2
inc esi
cmp esi, 0x541
jl 0x10023dc0
mov edi, dword [ebp - 0x4c]
mov dword [ebp - 0x3c], 0x20bd2ab
mov byte [ebp - 4], 6
cmp dword [ebp - 0x20], 0x1a3
jge 0x10023e35
mov edx, str.fpby_nad_yquufc_gmllpa_elrb_gyeflwskf_zvkupax_pwz
mov ecx, 0x10080838
call fcn.10013913
jmp 0x10023e35
mov dword [ebp - 4], 2
lea eax, [ebp - 0xf4]
push dword [ebp - 0x9c]
movdqa xmm0, xmmword [0x10072fc0]
lea ecx, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x104]
mov dword [ebp - 0x28], 0x677b568b
push eax
push ebx
movdqu xmmword [ebp - 0x104], xmm0
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
call fcn.10001fbb
mov byte [ebp - 4], 8
mov dword [ebp - 0x24], 0x45af
cmp dword [ebp - 0x24], 0x497d
jle 0x10023f11
mov eax, ebx
mov dword [ebp - 0x18], ebx
mov esi, ebx
mov dword [ebp - 0x30], ebx
mov ecx, esi
mov dword [ebp - 0x14], ebx
and ecx, eax
mov esi, ebx
mov dword [ebp - 0x20], ecx
mov edi, ebx
mov eax, ecx
lea ecx, [ebp - 0x11c]
xor eax, edi
xor eax, esi
cdq
push edx
push eax
call fcn.10002a87
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10023ec7
mov eax, dword [eax]
push eax
call fcn.1004e245
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x11c]
call fcn.10011503
mov ecx, dword [ebp - 0x20]
inc edi
cmp edi, 0xd0a
jl 0x10023ea9
inc esi
cmp esi, 0x4e68
jl 0x10023ea7
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x18]
inc esi
mov dword [ebp - 0x30], esi
cmp esi, 0x373b
jl 0x10023e9b
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x566c
jl 0x10023e96
mov edi, dword [ebp - 0x4c]
mov dword [ebp - 0x14], 0x12f6
cmp dword [ebp - 0x24], 0x43b2
jge 0x10023f2c
push str.bjvgi_zbbbrz_dncu_opshk_ovxo_fycgxnov_hywrcmq
call fcn.1004e245
pop ecx
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 8
push eax
push 0x1a97
lea eax, [ebp - 0x7c]
mov edx, 0xaa3
push eax
lea eax, [ebp - 0x3c]
mov ecx, 0x6e54
push eax
push 0x4f42
push 0x3391
lea eax, [ebp - 0x50]
push eax
push 0x4f95
push 0x6c81
push ebx
push ebx
call fcn.10023b86
add esp, 0x2c
mov dword [ebp - 0x28], ebx
jmp 0x100240da
mov dword [ebp - 0x1c], 0x6e85fcb
mov dword [ebp - 0x20], 0x8c46158e
mov dword [ebp - 0x18], 0x81f6
mov dword [ebp - 0x3c], ebx
jmp 0x10023fb4
mov byte [ebp - 0x35], bl
cmp byte [ebp - 0x35], 0
je 0x10023fb1
push ecx
push 0x4208
push 0x4c5f
push ecx
xor dl, dl
call fcn.10022674
add esp, 0x10
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], 3
jle 0x10023f92
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x28]
mov esi, dword [ebp - 0x28]
cmp eax, 1
mov eax, dword [ebp - 0x1c]
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x7c]
sete cl
mov dword [eax + esi*4], ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x50]
je 0x1002400c
cmp dword [ebp - 0x28], ebx
je 0x1002400c
mov eax, dword [ebp - 0x7c]
cmp dword [eax + 8], ebx
je 0x1002400c
xor ecx, ecx
inc ecx
jmp 0x1002400e
mov ecx, ebx
xor eax, eax
cmp ecx, 0xfffffff7
setne al
cmp eax, 0xbe776e9f
sbb eax, eax
inc eax
cmp eax, 0xffffffff
jg 0x10024032
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x7c]
cmp dword [eax + ecx*4], ebx
jne 0x10024032
mov eax, ebx
jmp 0x10024035
xor eax, eax
inc eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], ebx
je 0x100240d2
lea eax, [ebp - 0x70]
mov dword [ebp - 0x70], 0x8d9a65c8
push eax
push ecx
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x30], 6
push ebx
call fcn.1002177f
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov esi, dword [ebp - 0x28]
add esp, 0xc
mov ecx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x18]
cmp eax, ecx
mov eax, dword [ebp - 0x70]
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x18]
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x7c]
setle dl
xor ecx, ecx
inc edx
cmp edx, dword [eax + esi*4]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
setg cl
sub edx, ecx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x7c]
setne cl
xor edx, edx
cmp ecx, dword [eax + 8]
setg dl
cmp dword [ebp - 0x50], edx
jge 0x100240c4
cmp dword [ebp - 0x18], ebx
jne 0x100240c4
mov ecx, ebx
jmp 0x100240c7
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x20]
imul eax, ecx
mov dword [ebp - 0x30], eax
jmp 0x100240d7
call fcn.100256b4
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 3
jle 0x10023f78
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 2
call fcn.10001f55
mov ecx, dword [ebp - 0x58]
cmp ecx, 0xffffffff
jne 0x10024149
push 1
push 0x6291
push 0x4a9
lea eax, [ebp - 0x90]
push eax
push ecx
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x54]
push eax
call fcn.10021898
add esp, 0x18
mov edx, 0x193b
xor cl, cl
call fcn.10024e57
mov ecx, dword [ebp - 0xa4]
lea eax, [ebp - 0x90]
push eax
call fcn.10026175
lea ecx, [ebp - 0x90]
call fcn.1002652c
jmp 0x1002464a
cmp ecx, dword [ebp - 0x54]
je 0x100245d1
mov dword [ebp - 0x30], 0x52061f6
lea ecx, [ebp - 0xd0]
xor eax, eax
inc eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x18], 0x8f5f4990
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x24], 0xf72b5725
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x20], 0x5f7919ad
push 4
call fcn.10001ed2
push 3
lea ecx, [ebp - 0xf4]
mov byte [ebp - 4], 0xb
call fcn.10001ed2
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x18], 0x618f
cmp dword [ebp - 0x18], 0x62dc
jle 0x10024207
push 1
push 0xfb3
push 0x155c
call dword [sym.imp.USER32.dll_AttachThreadInput]
mov edi, ebx
mov esi, ebx
mov ecx, esi
mov eax, edi
sar eax, cl
lea ecx, [ebp - 0x134]
cdq
push edx
push eax
call fcn.10002a87
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x100241e0
mov eax, dword [eax]
push eax
call fcn.1004e245
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x134]
call fcn.10011503
inc esi
cmp esi, 0x5189
jl 0x100241c2
inc edi
cmp edi, 0x465a
jl 0x100241c0
mov dword [ebp - 0x14], 4
cmp dword [ebp - 0x18], 0x5ef3
jge 0x10024222
push str.eaitqkcd_exzroi_iai_mxzowyfzc_kmgfed_bttcnznr_buj_eacxw_hrifvd_aobypcmmm_nrzqpkuj_frdqyh
call fcn.1004e245
pop ecx
mov dword [ebp - 4], 0xc
mov dword [ebp - 0xa8], 1
mov dword [ebp - 0x98], 0xfffffffa
mov dword [ebp - 0x2c], ebx
jmp 0x10024253
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0xc4], 0xe6e7f737
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 2
jl 0x10024242
push ecx
lea eax, [ebp - 0x2c]
mov dl, 1
push eax
lea eax, [ebp - 0xd0]
push eax
push ecx
call fcn.10022674
add esp, 0x10
mov dword [ebp - 0x2c], ebx
jmp 0x10024288
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0xf4]
mov dword [eax + ecx*4], 0xfffffff7
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 3
jl 0x10024275
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x30]
add eax, 0xbc37
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0xc0]
dec dword [ebp - 0x14]
jne 0x100242bf
cmp dword [ebp - 0x20], ebx
jne 0x100242bf
xor edx, edx
mov ecx, ebx
inc edx
jmp 0x100242c4
xor edx, edx
inc edx
mov ecx, edx
xor eax, eax
cmp ecx, 5
sete al
xor ecx, ecx
cmp eax, 0x2aee5a98
setl cl
xor eax, eax
imul ecx, dword [ebp - 0x1c]
cmp ecx, edx
setg al
cmp eax, dword [ebp - 0x20]
jl 0x10024555
mov dword [ebp - 0xa0], 0x15ea3766
mov dword [ebp - 0x34], 0x62e26a8a
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x14], 0x4961f084
mov dword [ebp - 0x18], 0x15
cmp dword [ebp - 0x18], 0x10
jle 0x10024595
mov dword [ebp - 0x80], 0x86bdae89
mov dword [ebp - 0x14], 0x67e7
cmp dword [ebp - 0x14], 0x6a63
jle 0x10024354
mov esi, ebx
mov edi, ebx
mov eax, edi
mov ecx, 0x10080838
xor eax, esi
cdq
push edx
push eax
call fcn.10010b40
inc edi
cmp edi, 0x7de9
jl 0x10024331
inc esi
cmp esi, 0x1497
jl 0x1002432f
mov dword [ebp - 0x84], 0x718b
mov byte [ebp - 4], 0xf
cmp dword [ebp - 0x14], 0x6565
jge 0x100243a4
mov edx, str.daen_kyzpbw_edcmcdhya
mov ecx, 0x10080838
call fcn.10013913
jmp 0x100243a4
lea eax, [ebp - 0x34]
mov dword [ebp - 4], 0xc
push eax
lea eax, [ebp - 0x84]
mov dword [ebp - 0x14], 7
push eax
push ebx
lea eax, [ebp - 0xa8]
mov edx, 0x7e2d
push eax
lea eax, [ebp - 0x80]
push eax
push 0xb7a
push 0x40db
push ecx
lea ecx, [ebp - 0xa0]
call fcn.10025c84
mov dword [ebp - 0x14], 0x19a4
add esp, 0x20
cmp dword [ebp - 0x14], 0x1cf4
jle 0x10024421
mov esi, ebx
mov edi, ebx
mov eax, esi
mov ecx, 0x10080838
cdq
idiv edi
mov eax, edx
cdq
push edx
push eax
call fcn.10010b40
inc edi
cmp edi, 0x213e
jl 0x100243fb
inc esi
cmp esi, 0x7a8a
jl 0x100243f9
mov byte [ebp - 4], 0x11
cmp dword [ebp - 0x14], 0x17aa
jge 0x10024467
mov edx, str.kmewkkoe_rrwgd_jicyhscgi_cvnqm_rmcjixbp_yshy_lfvctwjec_tsvv_jgoe_dehiki
mov ecx, 0x10080838
call fcn.10013913
jmp 0x10024467
mov dword [ebp - 4], 0xc
mov dword [ebp - 0x34], 4
jmp 0x10024543
mov dword [ebp - 0x14], 0x1937da87
mov dword [ebp - 0x30], 6
cmp dword [ebp - 0x80], ebx
jne 0x10024490
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x34], ebx
je 0x100244c6
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x20]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0xd0]
setl dl
xor ecx, ecx
cmp edx, dword [eax]
setle cl
cmp ecx, dword [ebp - 0x14]
jl 0x100244c6
cmp dword [ebp - 0x34], ebx
je 0x100244c6
xor ecx, ecx
inc ecx
jmp 0x100244c8
mov ecx, ebx
mov eax, dword [ebp - 0x34]
imul eax, ecx
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x84]
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x30], ebx
jne 0x100244f3
cmp dword [ebp - 0x98], ebx
jne 0x100244f3
mov ecx, ebx
jmp 0x100244f6
xor ecx, ecx
inc ecx
xor eax, eax
cmp ecx, 3
sete al
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
sub eax, 4
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x24], 6
jmp 0x1002453a
mov dword [ebp - 0x1c], 0x1c
jmp 0x10024531
mov byte [ebp - 0x3d], bl
lea edx, [ebp - 0x3d]
push ecx
call fcn.10021ed9
dec dword [ebp - 0x1c]
pop ecx
cmp dword [ebp - 0x1c], 0x1a
jge 0x10024521
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xfffffff0
jle 0x10024518
dec dword [ebp - 0x34]
cmp dword [ebp - 0x34], 0xffffffe8
je 0x1002447a
dec dword [ebp - 0x18]
jmp 0x1002430c
push 0x20ca
push 0x5ebf
push 0x451e
push 0x3fd4
lea eax, [ebp - 0xb0]
mov dword [ebp - 0xb0], 2
push eax
push 0x7320
push edx
push edx
push 0x6e2e
mov edx, 0x633f
xor cl, cl
call fcn.10021a16
add esp, 0x24
lea ecx, [ebp - 0xf4]
call fcn.10001f55
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 2
call fcn.10001f55
lea eax, [ebp - 0x54]
push eax
push ecx
push dword [ebp + 0x14]
lea edx, [ebp - 0x58]
push 1
push ecx
lea ecx, [ebp - 0x90]
call fcn.10021663
mov ecx, dword [ebp - 0x58]
add esp, 0x14
mov edi, dword [ebp - 0x4c]
mov esi, dword [ebp - 0xac]
add esi, ecx
cmp dword [edi + 0x14], 8
mov dword [ebp - 0x54], esi
jb 0x100245e6
mov eax, dword [edi]
jmp 0x100245e8
mov eax, edi
push dword [edi + 0x10]
mov ecx, dword [ebp + 0x14]
push esi
push eax
call fcn.1001db08
jmp 0x10023d83
mov ecx, dword [ebp + 0x24]
mov ebx, dword [ebp + 0x18]
mov esi, dword [ebp + 0x30]
mov dword [ebx], 0xda4d073f
mov eax, dword [ecx]
mov dword [ecx], eax
mov edx, dword [ecx]
xor ecx, ecx
mov eax, dword [esi]
cmp edx, eax
setge cl
mov dword [esi], ecx
mov eax, dword [esi]
mov ecx, dword [ebp + 0x28]
mov eax, dword [ecx]
mov edi, eax
mov esi, dword [eax + 8]
xor eax, eax
cmp esi, 0x2456160c
setne al
xor edx, edx
cmp eax, esi
mov eax, dword [ebx]
setle dl
xor ecx, ecx
cmp eax, edx
setl cl
xor eax, eax
cmp ecx, dword [edi]
setg al
mov dword [edi], eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret