Function at 0x10020504
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x208
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x1c], 3
mov dword [ebp - 0x34], 0xfffffff7
push ebx
xor ebx, ebx
inc ebx
xor edx, edx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x50], 0x7b04800f
mov dword [ebp - 8], ebx
mov dword [ebp - 4], 0xe1dfe009
mov dword [ebp - 0x28], 0xd83d7839
mov dword [ebp - 0x28], 0x312fbb6b
mov dword [ebp - 0x28], ebx
push esi
mov dword [ebp - 0x14], 0xffffffff
push edi
mov dword [ebp - 0x28], 0xcc01
mov edi, ecx
mov dword [ebp - 0x18], 0xa5fc0266
push 2
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x10], edx
pop esi
jmp 0x10020581
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xc4], 0xd4e70302
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x10020570
mov eax, dword [ebp - 0x14]
mov ecx, edx
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc0], edx
je 0x1002059b
mov ecx, ebx
mov eax, dword [ebp - 4]
add eax, ecx
imul eax, dword [ebp - 4]
test eax, eax
jne 0x100205af
mov ecx, edx
cmp dword [ebp - 0x14], edx
je 0x100205b1
mov ecx, ebx
mov eax, dword [ebp - 8]
sub ecx, eax
cmp ecx, dword [ebp - 8]
jne 0x100205c0
cmp dword [ebp - 0x14], edx
je 0x100205c5
cmp dword [ebp - 0x1c], edx
jne 0x100205c7
mov eax, edx
cmp eax, dword [ebp - 0x50]
jg 0x100205d2
mov eax, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x34]
xor edx, edx
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x34]
cmp eax, 0x2f7f1c74
mov eax, dword [ebp - 0xc4]
setne dl
xor ecx, ecx
cmp edx, eax
setge cl
neg ecx
jne 0x100205ff
cmp dword [ebp - 0x1c], 0
jne 0x100205ff
mov eax, dword [ebp - 0x30]
dec dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x30]
push 0xfffffffffffffff7
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], 0xffffffeb
pop ecx
cmp dword [ebp - 4], 0x17
jg 0x10020672
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0x12c], ecx
mov dword [ebp - 0x128], ecx
mov dword [ebp - 0x124], ecx
cmp dword [ebp - 0x30], 0
jne 0x1002065d
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x130]
mov eax, dword [ebp - 0x130]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x130]
inc eax
mov dword [ebp - 0x12c], eax
inc dword [ebp - 4]
jmp 0x1002061e
mov dword [ebp - 0x10], 0xfffb
mov dword [ebp - 0x30], 0xfffffffd
mov dword [ebp - 0x1c], 0x3e763161
mov dword [ebp - 0x34], 7
mov dword [ebp - 0x1c], 0x6a1c3d07
mov dword [ebp - 4], 0
jmp 0x100206ab
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x1ec], ecx
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x1002069e
mov dword [ebp - 4], 0
jmp 0x100206cb
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x18c], 0xa2e71cc5
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x100206ba
imul ecx, dword [ebp - 0x10], 0xd70
mov dword [ebp - 0x30], 0xd66a
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
mov eax, dword [ebp - 0x10]
setle dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [ebp - 0x1c]
setne cl
xor edx, edx
cmp ecx, esi
setle dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [ebp - 0x30]
setge cl
xor edx, edx
cmp ecx, 0x3062a4b1
setl dl
xor ecx, ecx
cmp eax, edx
setle cl
xor edx, edx
imul ecx, ecx, 0x4f7
mov dword [ebp - 0x1ec], ecx
mov eax, dword [ebp - 0x10]
cmp ecx, eax
mov eax, dword [ebp - 0x10]
setle dl
xor ecx, ecx
cmp edx, eax
setg cl
cmp ecx, 0xffffffff
je 0x1002074c
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
xor ecx, ecx
mov edx, dword [ebp - 0x30]
sub edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, edx
setge cl
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x188], eax
mov dword [ebp - 0x3c], 0x2667a876
mov dword [ebp - 4], 0xee0cd979
mov dword [ebp - 0x1c], 0x98fe831e
mov dword [ebp - 0x24], 0x25cc
mov dword [ebp - 0xc], 0
jmp 0x1002079a
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x38], ebx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ebx
jl 0x10020790
mov dword [ebp - 0xc], 0
jmp 0x100207b6
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x78], 0xe1c2a91
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ebx
jl 0x100207a8
mov dword [ebp - 0xc], 0
jmp 0x100207ce
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x44], ebx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ebx
jl 0x100207c4
mov dword [ebp - 0x38], 0
jmp 0x1002083f
mov dword [ebp - 0x14], 3
cmp dword [ebp - 0x14], 0
jne 0x10020832
cmp dword [ebp - 0x38], 0
je 0x1002082f
cmp dword [ebp - 0x14], 0
je 0x10020814
mov edx, dword [ebp - 0x14]
xor ecx, ecx
mov eax, dword [ebp - 0x38]
add edx, 0xb919
cmp edx, eax
setge cl
cmp ecx, 0x7b6fe6d3
je 0x10020814
mov eax, ebx
jmp 0x10020816
xor eax, eax
shl eax, 3
xor ecx, ecx
cmp eax, 0xffffffff
setle cl
cmp ecx, dword [ebp - 0x38]
jl 0x10020829
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov dword [ebp - 4], 0xfffffffc
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 9
jl 0x100207dc
cmp dword [ebp - 4], 0
je 0x100208a6
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 4], 0xfffffffe
push 5
sbb eax, eax
xor edx, edx
neg eax
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 4]
cmp eax, ecx
mov eax, dword [ebp - 0x38]
setne dl
xor ebx, ebx
cmp eax, edx
mov eax, dword [ebp - 0x44]
setne bl
sub ebx, eax
pop eax
sub ebx, eax
mov eax, dword [ebp - 0x44]
neg ebx
sbb ebx, ebx
xor ecx, ecx
inc ebx
cmp ebx, eax
mov eax, dword [ebp - 0x78]
setl cl
xor ebx, ebx
add eax, ecx
inc ebx
cmp eax, dword [ebp - 0x1c]
jge 0x100208a6
mov eax, ebx
jmp 0x100208a8
xor eax, eax
xor ecx, ecx
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x44]
setle cl
xor edx, edx
add ecx, eax
mov eax, dword [ebp - 0x78]
cmp ecx, eax
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x44]
sete dl
add ecx, edx
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x44]
setl dl
sub edx, eax
jne 0x100208d8
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x38]
xor ecx, ecx
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x14], 0xfffffff8
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
test eax, eax
setg cl
xor edx, edx
imul eax, ecx, 0x364b
test eax, eax
jne 0x10020905
mov eax, edx
cmp dword [ebp - 0x14], edx
je 0x10020907
mov eax, ebx
mov dword [ebp - 0x78], eax
xor ecx, ecx
mov eax, dword [ebp - 0x14]
push 9
pop eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], ebx
mov dword [ebp - 4], 0x7013dce9
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], 0xec2184e5
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x24], 0xfffffff8
mov eax, dword [ebp - 0x10]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x10]
cmp eax, 0x4d03
setle cl
imul ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x10020956
mov eax, ebx
cmp dword [ebp - 0x10], edx
jne 0x10020958
mov eax, edx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], edx
jne 0x10020967
mov ecx, edx
cmp dword [ebp - 4], edx
je 0x10020969
mov ecx, ebx
mov eax, dword [ebp - 0x10]
sub eax, ecx
jne 0x10020973
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
neg ecx
sbb ecx, ecx
neg ecx
imul eax, ecx
test eax, eax
je 0x10020a41
mov dword [ebp - 0x18], 9
mov dword [ebp - 0x1c], 0xe4879289
mov dword [ebp - 0x14], edx
jmp 0x100209b1
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x164], 8
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x100209a0
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x14], 7
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
inc edx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setg cl
xor eax, eax
cmp ecx, 0xc43
mov ecx, dword [ebp - 0xc]
setge al
sub ecx, eax
sub ecx, dword [ebp - 0xc]
add ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 8]
sub edx, ecx
neg edx
sbb edx, edx
xor ebx, ebx
inc edx
cmp edx, eax
setge bl
sub ebx, 0x5d3e
neg ebx
sbb ebx, ebx
xor ecx, ecx
inc ebx
add ebx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
cmp eax, ebx
setle cl
xor ebx, ebx
mov dword [ebp - 8], ecx
inc ebx
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x160], eax
jmp 0x10020b2f
mov dword [ebp - 0x34], 0x158e9d28
mov dword [ebp - 4], edx
jmp 0x10020a5e
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x198], 0x5c8b
inc dword [ebp - 4]
cmp dword [ebp - 4], 3
jl 0x10020a4d
mov dword [ebp - 4], edx
cmp dword [ebp - 4], 0xffffffed
jg 0x10020b2f
push 0xfffffffffffffffb
pop edi
mov dword [ebp - 0x24], 0xac86e89b
mov dword [ebp - 0x1c], 0xd7279364
mov eax, dword [ebp - 0x34]
mov dword [ebp - 8], eax
mov dword [ebp - 0x10], edx
jmp 0x10020b16
mov dword [ebp - 0x1c], edx
xor ecx, ecx
mov dword [ebp - 0x1c], 0xce07b88c
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x198]
cmp eax, 0x85dd
setle cl
xor eax, eax
sub ecx, dword [ebp - 0x14]
imul ecx, dword [ebp - 0x24]
cmp ecx, 0x251a6545
mov ecx, 0x17f4926a
setge al
xor edx, edx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
sub ecx, eax
mov eax, dword [ebp - 0x10]
cmp ecx, 0xfffffff6
setge dl
mov eax, dword [ebp + eax*4 - 0x198]
add eax, 0xed309061
add eax, edx
xor edx, edx
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], edx
je 0x10020af7
mov eax, ebx
cmp dword [ebp - 0x14], edx
jne 0x10020af9
mov eax, edx
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], edx
jne 0x10020b08
mov eax, edx
cmp dword [ebp - 0x34], edx
je 0x10020b0a
mov eax, ebx
cmp edi, eax
sbb eax, eax
neg eax
mov dword [ebp - 0x14], eax
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jle 0x10020a90
dec dword [ebp - 4]
cmp dword [ebp - 4], 0xffffffed
jle 0x10020a74
mov edi, dword [ebp - 0x48]
xor edx, edx
mov dword [ebp - 0x34], 0x88dcfd8f
mov dword [ebp - 8], edx
jmp 0x10020b47
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x70], ebx
inc dword [ebp - 8]
cmp dword [ebp - 8], ebx
jl 0x10020b3d
mov dword [ebp - 0x10], edx
mov dword [ebp - 4], 0x13e458c4
mov dword [ebp - 8], edx
jmp 0x10020b69
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x40], 0xfffffffd
inc dword [ebp - 8]
cmp dword [ebp - 8], ebx
jl 0x10020b5b
mov eax, dword [ebp - 0x10]
add eax, esi
je 0x10020bb0
mov byte [ebp - 0x1d], dl
cmp byte [ebp - 0x1d], dl
je 0x10020b95
push 0x926
push edx
push 0x1ef0
push 0x16e
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
xor edx, edx
mov byte [ebp - 0x1d], dl
cmp byte [ebp - 0x1d], 0
je 0x10020cd3
push edx
call dword [sym.imp.KERNEL32.dll_RtlCaptureContext]
xor edx, edx
jmp 0x10020cd3
mov dword [ebp - 0xc], 9
mov byte [ebp - 0x1d], dl
cmp byte [ebp - 0x1d], dl
je 0x10020be2
push edx
push 0x2082
push edx
push 0x1aab
push edx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.USER32.dll_DrawTextExW]
xor edx, edx
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], edx
jl 0x10020cd3
mov dword [ebp - 0x14], 0x70ed99ea
xor ecx, ecx
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x40]
test eax, eax
mov eax, dword [ebp - 0x10]
setne cl
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp + eax*4 - 0x40]
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], edx
jne 0x10020c20
mov eax, dword [ebp - 0x10]
cmp dword [ebp + eax*4 - 0x40], edx
mov eax, edx
je 0x10020c22
mov eax, ebx
xor edx, edx
cmp eax, 0xdc99
setne dl
xor ecx, ecx
add edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x40]
cmp edx, eax
mov eax, dword [ebp - 0x10]
setne cl
xor edx, edx
mov eax, dword [ebp + eax*4 - 0x40]
cmp eax, ecx
mov eax, dword [ebp - 0x10]
sete dl
mov esi, dword [ebp + eax*4 - 0x40]
xor eax, eax
cmp eax, edx
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0x41a80d1c
setg cl
imul esi, ecx
imul esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
cmp ebx, esi
sbb ecx, ecx
neg ecx
sub ecx, dword [ebp + eax*4 - 0x40]
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp dword [ebp - 0x24], ecx
sete al
xor edx, edx
mov dword [ebp - 4], eax
mov dword [ebp - 0x14], edx
jmp 0x10020cc2
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], edx
jl 0x10020cbf
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + eax*4 - 0x40]
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x40], ecx
mov dword [ebp - 4], edx
jmp 0x10020cb5
mov eax, dword [ebp - 4]
cmp dword [ebp + eax*4 - 0x40], edx
jne 0x10020cba
inc dword [ebp - 4]
cmp dword [ebp - 4], edx
jle 0x10020ca9
dec dword [ebp - 0xc]
jns 0x10020c96
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jle 0x10020c8e
dec dword [ebp - 0x10]
jns 0x10020bee
push 2
pop esi
mov dword [ebp - 0x3c], edx
jmp 0x10020eb1
mov dword [ebp - 0x18], 0x591
mov dword [ebp - 0x1c], 0xa0d018d3
mov dword [ebp - 0x1c], 0x52b4b5a9
mov dword [ebp - 0x24], 7
mov dword [ebp - 0x28], ebx
mov dword [ebp - 4], edx
jmp 0x10020d10
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x104], 0xe704f3d
inc dword [ebp - 4]
cmp dword [ebp - 4], 3
jl 0x10020cff
mov dword [ebp - 4], edx
jmp 0x10020d29
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x7c], 0xaf12
inc dword [ebp - 4]
cmp dword [ebp - 4], ebx
jl 0x10020d1b
mov eax, dword [ebp - 0x18]
xor ecx, ecx
mov eax, dword [ebp - 0x104]
mov eax, dword [ebp - 0x104]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x7c]
cmp eax, 0x45cb
mov eax, dword [ebp - 0x1c]
setg cl
sub eax, ecx
add eax, dword [ebp - 0x18]
je 0x10020d5a
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
xor ecx, ecx
mov eax, dword [ebp - 0x104]
cmp eax, 0x593c
setle cl
sub ecx, 3
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0xfc]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x104]
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x18], 0x9781
mov dword [ebp - 0x90], 0xb7136239
mov dword [ebp - 4], 0x9bdba76a
mov dword [ebp - 8], edx
jmp 0x10020db5
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xbc], ebx
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x10020da8
mov dword [ebp - 4], edx
jmp 0x10020e35
mov dword [ebp - 8], edx
jmp 0x10020dd5
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x1bc], 0x246c3825
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x10020dc4
mov eax, dword [ebp - 4]
xor ecx, ecx
push 0
mov eax, dword [ebp + eax*4 - 0xbc]
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0xbc]
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0xbc]
test eax, eax
mov eax, dword [ebp - 4]
setg cl
sub eax, ecx
mov ecx, 0xfa20bd03
cmp ecx, eax
mov eax, dword [ebp - 0xb8]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
setg dl
xor eax, eax
cmp edx, 0xffffffff
pop edx
setne al
cmp ebx, eax
sbb eax, eax
inc eax
mov dword [ebp - 0x1bc], eax
inc dword [ebp - 4]
cmp dword [ebp - 4], ebx
jle 0x10020dbf
mov dword [ebp - 0x24], ebx
xor edx, edx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x3c]
push 0
mov eax, dword [ebp + eax*4 - 0x70]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x70]
cmp eax, ecx
mov eax, dword [ebp - 0x3c]
setle dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x1c], ecx
xor ecx, ecx
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x3c]
sub edx, eax
mov eax, dword [ebp - 0x18]
cmp edx, eax
mov eax, dword [ebp - 0x34]
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x3c]
setle dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x70]
cmp eax, edx
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x3c]
setne cl
mov dword [ebp - 0x24], ecx
push eax
call fcn.10022229
add esp, 0xc
inc dword [ebp - 0x3c]
xor edx, edx
cmp dword [ebp - 0x3c], edx
jle 0x10020cdb
or eax, 0xffffffff
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xec], eax
mov dword [ebp - 4], 0xfffffffb
mov dword [ebp - 0x28], 0x60fc
mov dword [ebp - 0x28], 0x47fce3ba
mov dword [ebp - 4], edx
jmp 0x10020efd
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x6c], 0x29000d4e
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x10020eef
mov dword [ebp - 4], edx
jmp 0x10020f18
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x1cc], 0xddd2e786
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x10020f07
push 3
pop ecx
mov dword [ebp - 0x68], ecx
cmp dword [ebp - 0x68], edx
jl 0x10020ff8
mov dword [ebp - 0x14], 0x7359b504
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x28], 6
mov dword [ebp - 8], edx
jmp 0x10020f56
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x14c], 0xdd7582ba
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x10020f45
mov eax, dword [ebp - 0x68]
cmp dword [ebp + eax*4 - 0xf8], edx
je 0x10020f9b
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp + eax*4 - 0xf8]
mov eax, dword [ebp - 0x68]
add ecx, 0x3c225155
mov edx, dword [ebp + eax*4 - 0xf8]
mov eax, dword [ebp - 0xf4]
imul edx, ecx
xor ecx, ecx
cmp edx, eax
setne cl
xor edx, edx
cmp ecx, dword [ebp - 0x68]
jne 0x10020f9b
mov eax, dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
xor ecx, ecx
push 3
mov eax, dword [ebp + eax*4 - 0xf8]
test eax, eax
setne cl
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 4], eax
mov dword [ebp - 0x14], edx
pop ecx
jmp 0x10020fea
mov dword [ebp - 8], edx
jmp 0x10020fcf
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x1d4], esi
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x10020fc2
mov dword [ebp - 4], edx
jmp 0x10020fe2
dec dword [ebp - 0x14c]
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jle 0x10020fd9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jle 0x10020fbd
dec dword [ebp - 0x68]
jns 0x10020f2c
cmp dword [edi + 0x10], edx
jne 0x10021004
xor al, al
jmp 0x100221e4
push 0xf2e
push edx
lea eax, [ebp - 0x74]
push eax
call fcn.100238fe
xor edx, edx
mov dword [ebp - 8], 0x91a049fe
mov byte [ebp - 0x1d], dl
add esp, 0xc
cmp byte [ebp - 0x1d], dl
je 0x1002102f
call dword [sym.imp.KERNEL32.dll_SwitchToThread]
xor edx, edx
mov dword [ebp - 8], 0xfffffff6
jmp 0x10021065
mov byte [ebp - 0x1d], dl
cmp byte [ebp - 0x1d], 0
je 0x10021062
push edx
push 0x1fba
push 0x20a5
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetCharABCWidthsW]
xor edx, edx
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x1d
jge 0x10021038
cmp dword [edi + 0x14], 0x10
jb 0x10021075
mov esi, dword [edi]
jmp 0x10021077
mov esi, edi
cmp dword [edi + 0x14], 0x10
jb 0x10021081
mov ecx, dword [edi]
jmp 0x10021083
mov ecx, edi
mov eax, dword [edi + 0x10]
add eax, ecx
push 3
cmp esi, eax
je 0x10021f6a
mov dword [ebp - 0x24], 0xfffd
mov dword [ebp - 0x1c], 0x8a87013d
mov dword [ebp - 0x1c], 0xfffffffc
mov dword [ebp - 0x28], 0x3ff82ff4
mov dword [ebp - 0x28], ebx
pop edi
mov dword [ebp - 0x34], edi
mov dword [ebp - 8], edx
jmp 0x100210cb
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x1f8], 4
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x100210ba
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
inc dword [ebp - 0x34]
mov dword [ebp - 0x10], 0x76820624
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 4], 0x8afc1da7
mov dword [ebp - 0x18], edx
mov dword [ebp - 8], edx
jmp 0x10021106
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x4c], ebx
inc dword [ebp - 8]
cmp dword [ebp - 8], ebx
jl 0x100210fc
mov eax, dword [ebp - 0x14]
push 5
pop ecx
cmp ecx, eax
sbb eax, eax
xor edx, edx
neg eax
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x14]
cmp eax, ecx
setl dl
xor eax, eax
cmp edx, 0xffffffff
setg al
add eax, 8
je 0x10021137
mov eax, dword [ebp - 0x4c]
xor edx, edx
mov dword [ebp - 4], ebx
mov dword [ebp - 4], edx
cmp dword [ebp - 4], edx
jg 0x100211c3
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + eax*4 - 0x4c]
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x4c], ecx
test ecx, ecx
je 0x100211a9
cmp dword [ebp - 0x4c], edx
jne 0x10021162
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0x4c]
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + eax*4 - 0x4c]
add ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
mov edi, dword [ebp + eax*4 - 0x4c]
inc ecx
mov eax, dword [ebp - 0x14]
cmp ecx, eax
setg dl
xor eax, eax
cmp edi, edx
sete al
xor ecx, ecx
cmp eax, 0x9248
setne cl
sub ecx, 0x1aa5bbe7
je 0x100211a7
mov edx, ebx
jmp 0x100211a9
xor edx, edx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setl cl
xor edx, edx
mov dword [ebp - 0x14], ecx
inc dword [ebp - 4]
cmp dword [ebp - 4], edx
jle 0x10021144
push 3
pop edi
mov dword [ebp - 0x24], 0xfc6088b9
mov dword [ebp - 0x24], 0x5c29478c
mov dword [ebp - 0x10], 0xfffffff5
cmp dword [ebp - 0x10], 0xffffffe3
je 0x10021768
jmp 0x100211e6
mov dword [ebp - 0x28], 9
mov dword [ebp - 8], edx
jmp 0x10021200
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x5c], 0xf6af1124
inc dword [ebp - 8]
cmp dword [ebp - 8], ebx
jl 0x100211f2
mov dword [ebp - 0x5c], edx
jmp 0x1002121c
mov dword [ebp - 0x1c], 0x19c5
cmp dword [ebp - 0x1c], edx
jne 0x10021222
mov eax, dword [ebp - 0x1c]
inc dword [ebp - 0x5c]
cmp dword [ebp - 0x5c], 6
jge 0x1002120a
mov byte [ebp - 0x29], dl
mov dword [ebp - 8], edx
mov dword [ebp - 0x18], 0x820eaada
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], 0x26b13122
mov dword [ebp - 0x24], 0x6f63
mov dword [ebp - 0x30], 0xfffffff9
mov dword [ebp - 0x24], 0x4eff
mov dword [ebp - 4], edx
jmp 0x10021264
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x8c], 0xfffffff6
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x10021253
push 2
mov dword [ebp - 4], edx
pop edi
jmp 0x10021283
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x1a0], 0xa1ea5693
inc dword [ebp - 4]
cmp dword [ebp - 4], edi
jl 0x10021272
mov dword [ebp - 0x84], edx
jmp 0x100214d7
mov dword [ebp - 0x34], 0x9f88
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0xc], edx
jmp 0x100212b7
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x9c], 0x647dc4b
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 3
jl 0x100212a6
mov dword [ebp - 0xc], edx
jmp 0x100212d0
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x58], 0x3e90a624
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x100212c2
mov dword [ebp - 0xc], edx
jmp 0x100212eb
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x134], 0xde905f4d
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ebx
jl 0x100212da
mov dword [ebp - 0x54], edx
jmp 0x100214c8
mov dword [ebp - 0x18], 0xb2811ffb
mov dword [ebp - 8], edx
jmp 0x10021311
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xd8], ebx
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x10021304
mov dword [ebp - 0xd8], edi
cmp dword [ebp - 0xd8], edx
jl 0x100214ab
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], edi
jg 0x1002149c
mov dword [ebp - 0x1c], 0xfffffff8
mov dword [ebp - 8], edx
jmp 0x10021358
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x1b0], 0xcf58a412
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x10021347
cmp dword [ebp - 0x84], 0x6c93
jg 0x10021378
mov dword [ebp - 0x18], edx
dec dword [ebp - 0xd8]
jns 0x10021329
mov byte [ebp - 0x1d], dl
cmp byte [ebp - 0x1d], 0
je 0x100214c5
push edx
push edx
push 0x1544
push edx
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
xor edx, edx
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], edi
jle 0x100212f8
dec dword [ebp - 0x84]
cmp dword [ebp - 0x84], 0xfffffff1
jge 0x10021293
mov eax, dword [ebp - 0x84]
xor edx, edx
dec dword [ebp - 0x30]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
cmp eax, ecx
push 3
setle dl
mov dword [ebp - 8], edx
xor edx, edx
mov eax, dword [ebp - 8]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
pop edi
mov ecx, edi
sub ecx, eax
mov eax, dword [ebp - 0x24]
cmp ecx, eax
mov eax, dword [ebp - 0x84]
setne dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x84]
setg bl
xor ecx, ecx
cmp ebx, eax
mov eax, dword [ebp - 0x8c]
setne cl
add eax, ecx
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x1a0], eax
cmp byte [ebp - 0x29], 0
je 0x10021758
mov dword [ebp - 4], 0x2e91a049
xor ebx, ebx
mov dword [ebp - 0x28], 0x42796a45
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x24], 8
mov dword [ebp - 0x24], 0x3cfebdab
mov dword [ebp - 0xc], 0xf544bd1a
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x24], 0xc16b405b
mov dword [ebp - 0x50], 0x6862eae2
mov dword [ebp - 0x24], 0x13aabdc9
mov dword [ebp - 0x1c], 0xdcc2
mov dword [ebp - 8], ebx
jmp 0x100215ad
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xffffffe3
push 1
pop ebx
jne 0x100211e4
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
sub eax, ecx
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x10]
cmp ecx, eax
setge dl
xor ecx, ecx
imul edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp edx, eax
setge cl
xor eax, eax
cmp ecx, ebx
setg al
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
neg ecx
sbb ecx, ecx
neg ecx
sub ecx, eax
imul eax, ecx, 0xd0f0
sub eax, 0x46dede40
jne 0x100217cb
cmp dword [ebp - 0x10], eax
jne 0x100217cb
xor ecx, ecx
jmp 0x100217cd
mov ecx, ebx
xor eax, eax
cmp ecx, 0xffffffff
setge al
neg eax
mov dword [ebp - 0x10], eax
mov al, byte [esi]
cmp al, 0x30
jl 0x10021cab
cmp al, 0x39
jg 0x10021cab
mov dword [ebp - 4], 0x696a485b
xor edx, edx
mov dword [ebp - 0x14], 0x8a11015
mov dword [ebp - 0x18], 0xfff6
mov dword [ebp - 0x28], 9
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
cmp ecx, eax
mov eax, dword [ebp - 4]
setg dl
xor ecx, ecx
cmp eax, edx
setne cl
xor eax, eax
cmp ecx, 0x1d91e66c
setg al
sub eax, dword [ebp - 4]
add eax, 0xbfb3a4d
jne 0x1002189e
xor edx, edx
cmp dword [ebp - 4], edx
jne 0x1002189e
mov dword [ebp - 0x18], 0xa388
mov dword [ebp - 0x30], 0xef314d41
dec dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
sub eax, 0xf90b8a44
neg eax
sbb eax, eax
inc eax
cmp eax, 0xffffffff
je 0x10021874
mov eax, edx
cmp dword [ebp - 0x18], edx
je 0x10021876
mov eax, ebx
mov dword [ebp - 0x14], eax
xor ecx, ecx
mov eax, dword [ebp - 0x14]
cmp eax, 0x9ba1
setle cl
xor eax, eax
cmp ecx, 0x73ede5c4
setne al
sub eax, dword [ebp - 4]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x28], eax
jmp 0x1002190a
mov dword [ebp - 0x30], 0x2de4bf74
xor ecx, ecx
mov dword [ebp - 0x28], 0xb622b607
mov dword [ebp - 0x24], ebx
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 4]
cmp eax, ebx
setl cl
xor eax, eax
cmp ecx, 9
mov ecx, dword [ebp - 0x30]
setle al
xor edx, edx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x14]
cmp ecx, eax
mov eax, dword [ebp - 0x30]
setge dl
xor ebx, ebx
cmp edx, dword [ebp - 0x28]
setg bl
xor ecx, ecx
cmp eax, ebx
setle cl
xor ebx, ebx
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
inc dword [ebp - 0x18]
cmp eax, ecx
je 0x10021902
inc ebx
xor edx, edx
mov eax, ebx
jmp 0x10021907
xor edx, edx
inc ebx
mov eax, edx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x1c], 0xfffffff7
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x24], 0x7b04800f
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], 0xe1dfe009
mov dword [ebp - 0x28], 0xd83d7839
mov dword [ebp - 0x28], 0x312fbb6b
mov dword [ebp - 0x28], ebx
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x28], 0xcc01
mov dword [ebp - 0x30], 0xa5fc0266
push 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], edx
pop edi
jmp 0x1002196a
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xcc], 0xd4e70302
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x10021959
mov eax, dword [ebp - 4]
mov ecx, edx
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
cmp dword [ebp - 0xc8], edx
je 0x10021984
mov ecx, ebx
mov eax, dword [ebp - 0x14]
add eax, ecx
imul eax, dword [ebp - 0x14]
test eax, eax
jne 0x10021998
mov ecx, edx
cmp dword [ebp - 4], edx
je 0x1002199a
mov ecx, ebx
mov eax, dword [ebp - 0x18]
sub ecx, eax
cmp ecx, dword [ebp - 0x18]
jne 0x100219a9
cmp dword [ebp - 4], edx
je 0x100219b0
mov eax, ebx
cmp dword [ebp - 0x34], edx
jne 0x100219b2
mov eax, edx
cmp eax, dword [ebp - 0x24]
jg 0x100219bd
mov eax, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
cmp eax, 0x2f7f1c74
mov eax, dword [ebp - 0xcc]
setne dl
xor ecx, ecx
cmp edx, eax
setge cl
neg ecx
jne 0x100219ed
xor ecx, ecx
cmp dword [ebp - 0x34], ecx
jne 0x100219ef
mov eax, dword [ebp - 0xc]
jmp 0x100219ef
xor ecx, ecx
dec dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
mov dword [ebp - 4], eax
mov dword [ebp - 0x14], 0xffffffeb
jmp 0x10021a5b
push 0xfffffffffffffff7
pop eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x110], eax
mov dword [ebp - 0x10c], eax
cmp dword [ebp - 0x30], ecx
jne 0x10021a48
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x118]
mov eax, dword [ebp - 0x118]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x118]
inc eax
mov dword [ebp - 0x114], eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x17
jle 0x10021a0d
mov dword [ebp - 0xe8], 0xffffffff
mov dword [ebp - 0xe4], 0xffffffff
mov dword [ebp - 0xe0], 0xffffffff
mov dword [ebp - 0xdc], 0xffffffff
mov dword [ebp - 4], 0xfffffffb
mov dword [ebp - 0x28], 0x60fc
mov dword [ebp - 0x28], 0x47fce3ba
mov dword [ebp - 4], ecx
jmp 0x10021ab1
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x64], 0x29000d4e
inc dword [ebp - 4]
cmp dword [ebp - 4], edi
jl 0x10021aa3
mov dword [ebp - 4], ecx
jmp 0x10021acc
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x1c4], 0xddd2e786
inc dword [ebp - 4]
cmp dword [ebp - 4], edi
jl 0x10021abb
mov dword [ebp - 0x60], 3
cmp dword [ebp - 0x60], ecx
jl 0x10021bac
mov dword [ebp - 0x14], 0x7359b504
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x28], 6
mov dword [ebp - 8], ecx
jmp 0x10021b0b
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x15c], 0xdd7582ba
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x10021afa
mov eax, dword [ebp - 0x60]
cmp dword [ebp + eax*4 - 0xe8], ecx
je 0x10021b4e
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp + eax*4 - 0xe8]
mov eax, dword [ebp - 0x60]
add ecx, 0x3c225155
mov edx, dword [ebp + eax*4 - 0xe8]
mov eax, dword [ebp - 0xe4]
imul edx, ecx
xor ecx, ecx
cmp edx, eax
setne cl
cmp ecx, dword [ebp - 0x60]
jne 0x10021b4e
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp - 0x60]
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0xe8]
test eax, eax
setne cl
mov dword [ebp - 0x14], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 4], eax
mov dword [ebp - 0x14], ecx
jmp 0x10021b9d
mov dword [ebp - 8], ecx
jmp 0x10021b81
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x1dc], edi
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x10021b74
mov dword [ebp - 4], ecx
jmp 0x10021b94
cmp dword [ebp - 0x14], 3
jle 0x10021b6f
dec dword [ebp - 0x60]
jns 0x10021ae1
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x28], 0xd76270e7
mov dword [ebp - 0x1c], 0xbdf11caf
mov dword [ebp - 4], ecx
jmp 0x10021bd3
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x17c], 0xffffffff
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x10021bc2
mov dword [ebp - 4], ecx
jmp 0x10021bef
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x184], 6
inc dword [ebp - 4]
cmp dword [ebp - 4], edi
jl 0x10021bde
mov dword [ebp - 0x10], ecx
jmp 0x10021c86
mov dword [ebp - 4], ecx
xor edx, edx
mov dword [ebp - 0x24], 0xfffffffd
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x170]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x17c]
mov eax, dword [ebp - 4]
cmp ecx, eax
setl dl
cmp edx, dword [ebp - 0x174]
jle 0x10021c36
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
push 4
pop ecx
sub ecx, eax
mov eax, 0x8dacb314
sub ecx, dword [ebp - 4]
sub ecx, dword [ebp - 4]
sub ecx, dword [ebp - 0x10]
cmp eax, ecx
mov eax, dword [ebp - 0x10]
push 0
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
setle cl
mov dword [ebp - 0x24], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x170]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x1c]
cmp eax, ebx
setg cl
mov dword [ebp - 0x180], ecx
inc dword [ebp - 0x10]
pop ecx
cmp dword [ebp - 0x10], 0xe
jge 0x10021bfc
mov edx, dword [ebp - 0x74]
movsx eax, byte [esi]
mov edi, dword [ebp - 0x48]
imul ecx, dword [edx], 0xa
add ecx, 0xffffffd0
add eax, ecx
inc esi
mov dword [edx], eax
xor edx, edx
jmp 0x10021077
mov dword [ebp - 8], 0x91a049fe
mov byte [ebp - 0x29], 0
cmp byte [ebp - 0x29], 0
je 0x10021cc4
push 0
call fcn.1002371d
pop ecx
mov dword [ebp - 8], 0xfffffff6
jmp 0x10021cfa
mov byte [ebp - 0x29], 0
cmp byte [ebp - 0x29], 0
je 0x10021cf7
push 0
push 0x1fba
push 0x20a5
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetCharABCWidthsW]
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x1d
jge 0x10021ccd
lea eax, [ebp - 0x74]
push eax
push 0
call fcn.1002369b
mov dword [ebp - 0xc], 0xccba
xor edx, edx
mov dword [ebp - 4], 0xfffffffa
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x10], 0x64de8cc1
pop ecx
mov dword [ebp - 8], ebx
pop ecx
mov dword [ebp - 8], edx
jmp 0x10021d40
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xa8], 8
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x10021d2f
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], edx
jne 0x10021d56
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
xor ecx, ecx
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x48], 0x8e503485
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0xc]
cmp eax, ebx
setl cl
cmp ecx, dword [ebp - 0xc]
jge 0x10021d7e
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp dword [ebp - 4], 0xfffffff7
je 0x10021d8e
cmp dword [ebp - 4], edx
je 0x10021d8e
mov edx, ebx
mov eax, dword [ebp - 0xc]
xor ecx, ecx
cmp edx, eax
setg cl
xor edx, edx
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
cmp eax, ecx
setl dl
xor ecx, ecx
add edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp edx, eax
mov eax, dword [ebp - 0xc]
setg cl
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0xc]
setle dl
xor ecx, ecx
cmp edx, eax
setle cl
add ecx, dword [ebp - 0xc]
mov dword [ebp - 8], ecx
mov eax, dword [ebp - 0xa0]
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0xc]
jle 0x10021e8a
mov dword [ebp - 0x14], 0x5b974db9
xor edx, edx
mov dword [ebp - 0x18], 0xfffffffb
mov dword [ebp - 0x10], 2
cmp dword [ebp - 0x10], edx
jl 0x10021e41
mov dword [ebp - 0x28], 0xfffffffe
mov dword [ebp - 0x28], 7
mov eax, dword [ebp - 0x10]
imul ecx, dword [ebp + eax*4 - 0xa8], 0xfbca
mov eax, dword [ebp - 0x14]
inc dword [ebp - 0x14]
cmp ecx, eax
mov eax, ebx
cmovne eax, edx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0xa8]
add eax, dword [ebp - 0xa8]
mov dword [ebp - 0x18], eax
dec dword [ebp - 0x10]
jns 0x10021dfd
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], edx
jne 0x10021e5c
mov eax, edx
cmp dword [ebp - 0x14], edx
je 0x10021e5e
mov eax, ebx
cmp dword [ebp - 0x10], eax
jge 0x10021e68
cmp dword [ebp - 0x18], edx
jne 0x10021e6d
cmp dword [ebp - 0x14], edx
je 0x10021e72
cmp dword [ebp - 0x14], edx
jne 0x10021e74
mov ebx, edx
mov eax, dword [ebp - 0x14]
imul eax, dword [ebp - 4]
sub eax, ebx
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 4], eax
jmp 0x10020ffd
mov dword [ebp - 8], ebx
mov dword [ebp - 0x10], 0
jmp 0x10021f14
mov dword [ebp - 0x28], 0xf7cfeb45
mov dword [ebp - 4], 0
jmp 0x10021eb7
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x16c], 0xabb416c0
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jl 0x10021ea6
mov dword [ebp - 4], 0
jmp 0x10021ed7
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x108], 0xf7bd129a
inc dword [ebp - 4]
cmp dword [ebp - 4], ebx
jl 0x10021ec6
mov eax, dword [ebp - 8]
xor ecx, ecx
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x168]
mov eax, dword [ebp - 8]
cmp ecx, eax
mov eax, dword [ebp - 0x168]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
setg dl
mov dword [ebp - 0x108], edx
mov dword [ebp - 0x28], edx
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xffffffe3
jl 0x10021e96
mov dword [ebp - 8], 2
cmp dword [ebp - 8], 0
jl 0x10020ffd
mov dword [ebp - 4], 0
jmp 0x10021f49
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xa8], 0x7caf8ba4
inc dword [ebp - 4]
cmp dword [ebp - 4], edi
jl 0x10021f38
mov byte [ebp - 0x29], 0
cmp byte [ebp - 0x29], 0
je 0x10021f60
push 0
call fcn.1002393d
pop ecx
dec dword [ebp - 8]
jns 0x10021f2f
jmp 0x10020ffd
mov dword [ebp - 0xc], 0xccba
mov dword [ebp - 4], 0xfffffffa
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x10], 0x64de8cc1
mov dword [ebp - 8], ebx
mov dword [ebp - 8], edx
pop esi
jmp 0x10021f9c
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xb4], 8
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x10021f8b
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], edx
jne 0x10021fb2
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
xor ecx, ecx
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x48], 0x8e503485
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xc]
cmp eax, ebx
setl cl
cmp ecx, dword [ebp - 0xc]
jge 0x10021fda
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp dword [ebp - 4], 0xfffffff7
je 0x10021fea
cmp dword [ebp - 4], edx
je 0x10021fea
mov edx, ebx
mov eax, dword [ebp - 0xc]
xor ecx, ecx
cmp edx, eax
setg cl
xor edx, edx
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
cmp eax, ecx
setl dl
xor ecx, ecx
add edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp edx, eax
mov eax, dword [ebp - 0xc]
setg cl
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0xc]
setle dl
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
add ecx, dword [ebp - 0xc]
mov dword [ebp - 8], ecx
mov eax, dword [ebp - 0xac]
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0xc]
jle 0x100220e8
mov dword [ebp - 0x14], 0x5b974db9
mov dword [ebp - 0x18], 0xfffffffb
mov dword [ebp - 0x10], 2
cmp dword [ebp - 0x10], edx
jl 0x1002209d
mov dword [ebp - 0x28], 0xfffffffe
mov dword [ebp - 0x28], 7
mov eax, dword [ebp - 0x10]
imul ecx, dword [ebp + eax*4 - 0xb4], 0xfbca
mov eax, dword [ebp - 0x14]
inc dword [ebp - 0x14]
cmp ecx, eax
mov eax, ebx
cmovne eax, edx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0xb4]
add eax, dword [ebp - 0xb4]
mov dword [ebp - 0x18], eax
dec dword [ebp - 0x10]
jns 0x10022059
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0xb0]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0xc], edx
jne 0x100220b8
mov eax, edx
cmp dword [ebp - 0x14], edx
je 0x100220ba
mov eax, ebx
cmp dword [ebp - 0x10], eax
jge 0x100220c4
cmp dword [ebp - 0x18], edx
jne 0x100220c9
cmp dword [ebp - 0x14], edx
je 0x100220d0
mov ecx, ebx
cmp dword [ebp - 0x14], edx
jne 0x100220d2
mov ecx, edx
mov eax, dword [ebp - 0x14]
imul eax, dword [ebp - 4]
sub eax, ecx
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 4], eax
jmp 0x100221b6
mov dword [ebp - 8], ebx
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], 0xffffffe3
jge 0x10022173
mov dword [ebp - 0x28], 0xf7cfeb45
mov dword [ebp - 4], edx
jmp 0x10022111
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x154], 0xabb416c0
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jl 0x10022100
mov dword [ebp - 4], edx
jmp 0x1002212d
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x11c], 0xf7bd129a
inc dword [ebp - 4]
cmp dword [ebp - 4], ebx
jl 0x1002211c
mov eax, dword [ebp - 8]
xor ecx, ecx
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x150]
mov eax, dword [ebp - 8]
cmp ecx, eax
mov eax, dword [ebp - 0x150]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
push 0
setg dl
mov dword [ebp - 0x11c], edx
mov dword [ebp - 0x28], edx
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xffffffe3
pop edx
jl 0x100220f4
mov dword [ebp - 8], 2
cmp dword [ebp - 8], edx
jl 0x100221b6
mov dword [ebp - 4], edx
jmp 0x10022195
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xb4], 0x7caf8ba4
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x10022184
mov byte [ebp - 0x29], dl
cmp byte [ebp - 0x29], 0
je 0x100221b1
push 0x8c4
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
xor edx, edx
dec dword [ebp - 8]
jns 0x1002217f
push edx
push 0x702e
push 0x2e08
push 0x1f5d
mov dword [ebp - 0x120], esi
call fcn.10023f4c
lea eax, [ebp - 0x120]
push 0
push eax
call fcn.100237d2
add esp, 0x18
mov al, bl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret