Function at 0x10057360
Capabilities:
Get memory capacity
Log keystrokes via polling
Terminate process

Disassembly:
mov eax, 0x1007bfc8
call fcn.1007a5d0
sub esp, 0x204
push ebx
push esi
push edi
mov dword [ebp - 0x24], 0x7e2799ac
mov eax, ecx
mov dword [ebp - 0x10], esp
xor ebx, ebx
mov dword [ebp - 0x38], 0x4ad744d0
push 2
mov dword [ebp - 0x28], 0x7758a8c
mov byte [ebp - 0x4c], dl
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x1c], ebx
pop esi
jmp 0x100573b1
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x90], 0x2fd4
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x100573a0
xor eax, eax
mov dword [ebp - 0x24], ebx
inc eax
cmp dword [ebp - 0x24], 0xffffffe6
je 0x100574bc
mov dword [ebp - 0x20], 0x55b7cefa
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], ebx
jl 0x1005740e
mov dword [ebp - 0x40], 0x73bf38c0
mov dword [ebp - 0x1c], 0x57688195
mov dword [ebp - 0x38], 0xfff9
inc dword [ebp - 0x38]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
jl 0x10057409
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0x90], ebx
jne 0x10057406
dec dword [ebp - 0x1c]
jns 0x100573f5
xor eax, eax
inc eax
dec dword [ebp - 0x20]
jns 0x100573d5
cmp dword [ebp - 0x8c], ebx
jne 0x1005743e
mov ecx, dword [ebp - 0x20]
xor edx, edx
mov eax, dword [ebp - 0x24]
cmp ecx, eax
mov eax, dword [ebp - 0x8c]
setg dl
xor ecx, ecx
cmp edx, 0x2fc5c3c3
setg cl
sub eax, ecx
je 0x1005743b
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
xor ecx, ecx
mov dword [ebp - 0x38], 0x41b44adc
mov eax, dword [ebp - 0x20]
xor edi, edi
inc edi
cmp eax, edi
setl cl
cmp ecx, 0xffff
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x38]
sbb esi, esi
xor edx, edx
inc esi
cmp ecx, eax
mov eax, dword [ebp - 0x8c]
setle dl
imul esi, edx
xor edx, edx
sub esi, 2
cmp esi, eax
mov eax, dword [ebp - 0x90]
setge dl
xor ecx, ecx
cmp edx, eax
sete cl
cmp ecx, 0x8aee5119
sbb eax, eax
inc eax
cmp eax, 0xfff8
jb 0x100574a4
cmp dword [ebp - 0x20], ebx
je 0x100574a4
xor eax, eax
inc eax
mov ecx, eax
jmp 0x100574a9
xor eax, eax
mov ecx, ebx
inc eax
mov dword [ebp - 0x28], ecx
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xffffffe6
jne 0x100573c6
push 2
pop esi
mov dword [ebp - 0x24], 0x7e2799ac
mov dword [ebp - 0x38], 0x4ad744d0
mov dword [ebp - 0x28], 0x7758a8c
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], esi
jge 0x100574f2
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x88], 0x2fd4
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x100574d9
xor eax, eax
inc eax
mov dword [ebp - 0x24], ebx
jmp 0x100575e6
mov dword [ebp - 0x20], 0x55b7cefa
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], ebx
jl 0x10057542
mov dword [ebp - 0x40], 0x73bf38c0
mov dword [ebp - 0x1c], 0x57688195
mov dword [ebp - 0x38], 0xfff9
inc dword [ebp - 0x38]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
jl 0x1005753d
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0x88], ebx
jne 0x1005753a
dec dword [ebp - 0x1c]
jns 0x10057529
xor eax, eax
inc eax
dec dword [ebp - 0x20]
jns 0x10057509
cmp dword [ebp - 0x84], ebx
jne 0x10057572
mov ecx, dword [ebp - 0x20]
xor edx, edx
mov eax, dword [ebp - 0x24]
cmp ecx, eax
mov eax, dword [ebp - 0x84]
setg dl
xor ecx, ecx
cmp edx, 0x2fc5c3c3
setg cl
sub eax, ecx
je 0x1005756f
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
xor edx, edx
mov dword [ebp - 0x38], 0x41b44adc
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x38]
cmp ecx, eax
mov eax, dword [ebp - 0x20]
setle dl
xor edi, edi
xor ecx, ecx
inc edi
cmp eax, edi
setl cl
cmp ecx, 0xffff
sbb eax, eax
inc eax
imul edx, eax
mov eax, dword [ebp - 0x84]
sub edx, esi
mov dword [ebp - 0x28], edx
xor edx, edx
cmp dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x88]
setge dl
xor ecx, ecx
cmp edx, eax
sete cl
cmp ecx, 0x8aee5119
sbb eax, eax
inc eax
cmp eax, 0xfff8
jb 0x100575db
cmp dword [ebp - 0x20], ebx
je 0x100575db
xor eax, eax
inc eax
mov ecx, eax
jmp 0x100575e0
xor eax, eax
mov ecx, ebx
inc eax
mov dword [ebp - 0x28], ecx
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xffffffe6
jne 0x100574fa
mov dword [ebp - 0x1c], esi
lea ecx, [ebp - 0x110]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x20], 0xfffffff7
push 4
call fcn.1001ba30
mov dword [ebp - 4], ebx
lea eax, [ebp - 0x1ac]
push dword [ebp + 8]
movdqa xmm0, xmmword [0x1000ce10]
lea ecx, [ebp - 0xb4]
push eax
lea eax, [ebp - 0x1bc]
mov dword [ebp - 0x2c], 0x5d1a
xor edi, edi
mov dword [ebp - 0xb4], ebx
push eax
inc edi
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0x24], edi
push ebx
movdqu xmmword [ebp - 0x1bc], xmm0
mov dword [ebp - 0xac], ebx
call fcn.10020cef
xor eax, eax
lea ecx, [ebp - 0x134]
inc eax
push eax
mov byte [ebp - 4], al
call fcn.1001ba30
xor edx, edx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x14], ebx
inc edx
cmp dword [ebp - 0x14], 3
jge 0x10057689
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x9c], edx
inc dword [ebp - 0x14]
jmp 0x10057674
mov dword [ebp - 0x14], ebx
jmp 0x100576a1
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x110]
mov dword [eax + ecx*4], 0x2f34c933
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x1005768e
mov dword [ebp - 0x14], ebx
jmp 0x100576bf
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x134]
mov dword [eax + ecx*4], 0x2fcb8f78
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x100576ac
mov esi, dword [ebp - 0x1c]
xor edx, edx
mov dword [ebp - 0x94], esi
mov ecx, dword [ebp - 0x1c]
imul ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
setge dl
imul edx, dword [ebp - 0x30]
imul edx, esi
cmp edx, dword [ebp - 0x1c]
jge 0x100576ed
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
xor edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
setle cl
cmp ecx, 4
sbb eax, eax
neg eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
add eax, dword [ebp - 0x30]
imul eax, dword [ebp - 0x30]
test eax, eax
je 0x100578f3
mov dword [ebp - 0x28], 0x3f36fc75
mov dword [ebp - 0x50], 0x6f4ed832
mov dword [ebp - 0x40], 0xbcce3f50
mov dword [ebp - 0x44], 0x1602a050
mov dword [ebp - 0x40], 0xffffffff
mov dword [ebp - 0x48], 0x7d7a760e
mov dword [ebp - 0x44], 0x5297f1ff
push 2
mov dword [ebp - 0x38], 0xffff
mov dword [ebp - 0x14], ebx
pop ecx
jmp 0x10057763
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xf4], edx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x10057756
mov dword [ebp - 0x14], ebx
jmp 0x1005777e
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xec], 0x25d0
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x1005776d
cmp dword [ebp - 0x28], ebx
je 0x100577e4
dec dword [ebp - 0x38]
xor ecx, ecx
mov eax, dword [ebp - 0x44]
cmp ecx, eax
sbb ecx, ecx
xor edx, edx
inc ecx
imul ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
mov eax, dword [ebp - 0x94]
setne dl
add eax, dword [ebp - 0x38]
xor ecx, ecx
cmp eax, edx
mov eax, dword [ebp - 0xe8]
setne cl
mov dword [ebp - 0x38], ecx
xor ecx, ecx
cmp dword [ebp - 0x38], eax
setl cl
cmp ecx, dword [ebp - 0x48]
je 0x100577d5
cmp dword [ebp - 0x2c], ebx
jne 0x100577d5
xor edx, edx
mov eax, ebx
inc edx
jmp 0x100577da
xor edx, edx
inc edx
mov eax, edx
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], edx
jbe 0x100577e4
mov edx, ebx
xor eax, eax
cmp edx, 0x13ec5cb5
setg al
xor edx, edx
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x50]
cmp ecx, eax
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x110]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x30]
setge cl
xor edx, edx
cmp ecx, 0x39e63a5b
setne dl
xor ecx, ecx
imul edx, dword [esi + 0xc]
cmp edx, eax
mov edx, dword [ebp - 0xb4]
mov dword [ebp - 0x50], edx
setl cl
mov dword [ebp - 0x44], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x44]
cmp eax, dword [esi + 0xc]
mov eax, dword [ebp - 0x40]
setne cl
sub ecx, dword [edx + 4]
mov edx, dword [ebp - 0x2c]
neg ecx
sbb ecx, ecx
sub edx, eax
mov eax, dword [ebp - 0xf4]
inc ecx
neg edx
mov dword [esi + 0xc], ecx
sbb edx, edx
neg eax
xor ecx, ecx
inc edx
cmp eax, 0x1e18
setle cl
xor eax, eax
cmp edx, ecx
setne al
cmp dword [ebp - 0x20], eax
jl 0x1005788a
cmp dword [ebp - 0x28], ebx
je 0x1005788a
xor edi, edi
inc edi
mov eax, edi
jmp 0x1005788f
xor edi, edi
mov eax, ebx
inc edi
xor ecx, ecx
cmp eax, 0x2240a493
mov eax, dword [ebp - 0x20]
sete cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x20]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x134]
setne cl
mov dword [eax], ecx
mov eax, dword [ebp - 0xb4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xe8]
add edx, ecx
mov ecx, dword [ebp - 0x50]
sub edx, eax
mov eax, dword [ebp - 0xf4]
neg edx
sbb edx, edx
neg edx
imul eax, edx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
xor eax, eax
cmp dword [ecx + 4], ebx
sete al
mov dword [ebp - 0x98], eax
jmp 0x100579ad
mov dword [ebp - 0x1c], 0x74a0
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x44], 0xfffb
mov dword [ebp - 0x50], 0x1517482c
mov dword [ebp - 0x24], 6
cmp dword [ebp - 0x24], 9
jg 0x100579aa
mov dword [ebp - 0x50], 0xc26eaa6b
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x44], 0xcbae8c6c
mov dword [ebp - 0x48], 0x8bf56f3c
inc dword [ebp - 0x28]
cmp dword [ebp - 0x48], ebx
je 0x10057944
cmp dword [ebp - 0x40], ebx
jne 0x10057946
mov edx, ebx
mov dword [ebp - 0x44], edx
xor edx, edx
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x98]
mov eax, dword [ebp - 0x48]
cmp ecx, eax
mov eax, dword [ebp - 0x20]
setl dl
xor ecx, ecx
imul eax, edx
push 1
pop edx
cmp eax, 0x63f48bf6
mov eax, dword [ebp - 0x50]
setle cl
sub eax, ecx
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x38]
add eax, dword [ebp - 0x30]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x50], 0xc104d70c
inc dword [ebp - 0x24]
jmp 0x10057915
xor edi, edi
inc edi
lea ecx, [ebp - 0x134]
call fcn.1001bab2
lea ecx, [ebp - 0xb4]
call fcn.1001bab2
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x110]
call fcn.1001bab2
mov esi, dword [0x1008190c]
mov dword [ebp - 0x40], edi
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
mov dword [ebp - 0x38], esi
je 0x100579f1
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualQueryEx]
cmp dword [ebp - 0x40], ebx
mov byte [ebp - 0x15], bl
je 0x10057a27
cmp byte [ebp - 0x15], 0
je 0x10057a15
push 0x865
push 0x1cfb
push ebx
push 0x2020
call dword [sym.imp.USER32.dll_DrawFrameControl]
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10057a35
push ebx
call dword [sym.imp.USER32.dll_GetKeyboardState]
jmp 0x10057a35
cmp byte [ebp - 0x15], 0
je 0x10057a35
push ebx
push ebx
call dword [sym.imp.USER32.dll_LoadCursorA]
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0xc0]
push dword [ebp + 8]
movdqa xmm0, xmmword [0x1000ce30]
movdqu xmmword [ebp - 0x1cc], xmm0
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
lea eax, [ebp - 0x1bc]
push eax
lea eax, [ebp - 0x1cc]
mov dword [ebp - 0xc0], ebx
push eax
push ebx
mov dword [ebp - 0xbc], ebx
mov dword [ebp - 0xb8], ebx
call fcn.10020cef
mov dword [ebp - 4], 2
lea ecx, [ebp - 0x160]
mov dword [ebp - 0x28], 0x5486b6fe
mov dword [ebp - 0x2c], 0xfffffffe
mov dword [ebp - 0x40], 0xffffffff
push 4
call fcn.1001ba30
mov byte [ebp - 4], 3
mov dword [ebp - 0x28], 0x3717
cmp dword [ebp - 0x28], 0x39b1
jle 0x10057af4
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
mov esi, ebx
mov dword [ebp - 0x40], ebx
mov eax, ebx
mov ecx, 0x106232b8
and eax, esi
cdq
push edx
push eax
call fcn.1001b658
inc ebx
cmp ebx, 0x4299
jl 0x10057acb
inc esi
push 0
pop ebx
cmp esi, 0xe5b
jl 0x10057ac8
mov esi, dword [ebp - 0x38]
mov dword [ebp - 0x14], ebx
jmp 0x10057b06
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x1f8], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10057af9
mov byte [ebp - 4], 4
cmp dword [ebp - 0x28], 0x3575
jge 0x10057b4f
mov edx, 0x1000ccac
mov ecx, 0x106232b8
call fcn.100201ca
jmp 0x10057b4f
xor edx, edx
mov dword [ebp - 0x14], ebx
inc edx
jmp 0x10057b66
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x160]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x10057b57
mov dword [ebp - 0x28], 0xfffffff8
mov eax, dword [ebp - 0x1f0]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0xc0]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
add eax, 0x29ef
cmp eax, dword [ecx + 4]
jle 0x10057b99
cmp dword [ebp - 0x2c], ebx
jne 0x10057b99
mov edx, ebx
mov eax, dword [ecx + 4]
lea ecx, [ebp - 0x160]
imul eax, edx
mov dword [ebp - 0x40], eax
call fcn.1001bab2
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xc0]
call fcn.1001bab2
xor edi, edi
inc edi
cmp byte [ebp - 0x4c], 0
je 0x10057dc0
cmp esi, edi
jne 0x10057dc0
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0xa8]
push 3
mov dword [eax + 8], 4
call fcn.1001ba30
mov dword [ebp - 0x14], 0x94643cdf
mov eax, 0xfe012d2c
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0x28], 0xb1361131
mov dword [ebp - 0x14], ebx
jmp 0x10057c2b
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xa8]
mov dword [eax + ecx*4], 0x10c93b4e
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10057c18
mov dword [ebp - 0x14], ebx
jmp 0x10057c47
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xc8], 0x7359
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10057c36
mov dword [ebp - 0x14], 2
cmp dword [ebp - 0x14], ebx
jl 0x10057dab
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x1c], 3
mov dword [ebp - 0x40], 0xffffffff
mov dword [ebp - 0x28], 0xcb8e
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xa8]
cmp dword [eax + ecx*4], ebx
jne 0x10057c9a
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0xa8]
mov eax, dword [edx + eax*4]
add eax, dword [edx + ecx*4]
xor ecx, ecx
cmp eax, dword [edx + esi*4]
mov esi, dword [ebp - 0x34]
setg cl
mov dword [ebp - 0xe0], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
add edx, dword [esi + 8]
mov eax, dword [ebp - 0x14]
cmp edx, eax
setl cl
xor eax, eax
cmp ecx, edi
setge al
cmp eax, dword [esi + 4]
jl 0x10057d95
mov dword [ebp - 0x2c], 0xfffffff9
mov dword [ebp - 0x1c], 0x2b0402ad
cmp dword [ebp - 0x2c], ebx
je 0x10057d19
mov dword [ebp - 0x1c], ebx
jmp 0x10057d08
mov dword [ebp - 0x40], 0xffffffff
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x1a
jl 0x10057cfe
mov eax, dword [ebp - 0xc8]
jmp 0x10057d9f
mov dword [ebp - 0x24], 0x7656540f
xor edx, edx
mov dword [ebp - 0x28], 0xffffffff
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xa8]
cmp dword [eax + ecx*4], 0x4a08deb2
mov eax, dword [ebp - 0x2c]
setg dl
xor ecx, ecx
cmp edx, eax
setge cl
cmp dword [ebp - 0x28], ecx
jg 0x10057d52
mov edx, ebx
cmp dword [ebp - 0x24], ebx
je 0x10057d54
mov edx, edi
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xdf78b15b
sbb esi, esi
xor ecx, ecx
inc esi
mov dword [ebp - 0xe0], esi
mov eax, dword [ebp - 0x2c]
cmp edx, eax
mov eax, dword [ebp - 0x2c]
setl cl
xor edx, edx
cmp ecx, eax
setg dl
imul edx, dword [ebp - 0x1c]
imul edx, esi
sub edx, dword [ebp - 0x1c]
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x24]
jmp 0x10057d9f
mov dword [ebp - 0xdc], 0x4d633c66
dec dword [ebp - 0x14]
jns 0x10057c65
mov esi, dword [ebp - 0x38]
lea ecx, [ebp - 0xa8]
call fcn.1001bab2
mov eax, dword [ebp + 8]
mov dword [eax + 0xc], 0x1008190c
mov dword [ebp - 0x30], edi
mov eax, 0xb3a3fc4b
mov dword [ebp - 0x34], 0xfffffffe
mov dword [ebp - 0x184], eax
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x17c], eax
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x30], ebx
jmp 0x10057f1b
mov dword [ebp - 0x24], 0xfffffff8
mov dword [ebp - 0x34], 0x456e348c
mov dword [ebp - 0x24], 0xffffffe7
jmp 0x10057f0e
mov dword [ebp - 0x1c], 0x36f6dd8d
lea ecx, [ebp - 0x11c]
mov dword [ebp - 0x34], 0x45b0e82c
push 2
call fcn.1001ba30
mov dword [ebp - 4], 6
mov dword [ebp - 0x1c], ebx
jmp 0x10057e43
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x11c]
mov dword [eax + ecx*4], 0x8bd9
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x10057e30
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10057e59
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [ebp - 0x1c], ebx
jmp 0x10057ef2
push 3
lea ecx, [ebp - 0x174]
call fcn.1001ba30
push 3
lea ecx, [ebp - 0x19c]
mov byte [ebp - 4], 7
call fcn.1001ba30
push 3
mov dword [ebp - 0x14], ebx
pop edx
jmp 0x10057e96
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x174]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x10057e87
mov dword [ebp - 0x14], ebx
jmp 0x10057eb3
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x19c]
mov dword [eax + ecx*4], 0xd9dd
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x10057ea0
mov eax, dword [ebp - 0x11c]
dec dword [eax]
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10057ed5
push 0x2244
push ebx
call dword [sym.imp.KERNEL32.dll_WinExec]
lea ecx, [ebp - 0x19c]
call fcn.1001bab2
lea ecx, [ebp - 0x174]
mov byte [ebp - 4], 6
call fcn.1001bab2
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x11
je 0x10057e61
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x11c]
call fcn.1001bab2
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0x1d
jle 0x10057e09
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0x13
jne 0x10057def
cmp dword [ebp - 0x3c], esi
jge 0x10058845
push dword [ebp + 8]
movdqa xmm0, xmmword [0x1000ce30]
lea eax, [ebp - 0x1dc]
push eax
lea eax, [ebp - 0x1ec]
mov dword [ebp - 0xd4], ebx
push eax
push ebx
lea ecx, [ebp - 0xd4]
mov dword [ebp - 0xd0], ebx
movdqu xmmword [ebp - 0x1ec], xmm0
mov dword [ebp - 0xcc], ebx
call fcn.10020cef
mov dword [ebp - 4], 8
lea ecx, [ebp - 0x190]
mov dword [ebp - 0x28], 0x5486b6fe
mov dword [ebp - 0x2c], 0xfffffffe
mov dword [ebp - 0x34], 0xffffffff
push 4
call fcn.1001ba30
xor edx, edx
mov dword [ebp - 0x14], ebx
inc edx
cmp dword [ebp - 0x14], 3
jge 0x10057fb1
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x204], edx
inc dword [ebp - 0x14]
jmp 0x10057f9c
mov dword [ebp - 0x14], ebx
jmp 0x10057fc5
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x190]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x10057fb6
mov dword [ebp - 0x28], 0xfffffff8
mov eax, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
add eax, 0x29ef
cmp eax, dword [ecx + 4]
jle 0x10057ff8
cmp dword [ebp - 0x2c], ebx
jne 0x10057ff8
mov edx, ebx
mov eax, dword [ecx + 4]
lea ecx, [ebp - 0x190]
imul eax, edx
mov dword [ebp - 0x34], eax
call fcn.1001bab2
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xd4]
call fcn.1001bab2
mov dword [ebp - 0x14], 0x7e8edf1f
lea ecx, [ebp - 0x14c]
xor edi, edi
mov dword [ebp - 0x24], 5
inc edi
mov dword [ebp - 0x34], 0xc1d66bd5
mov esi, 0x10081910
mov dword [ebp - 0x40], 0xbc8b6976
push edi
mov dword [ebp - 0x48], esi
call fcn.1001ba30
mov dword [ebp - 4], 9
xor edx, edx
mov dword [ebp - 0x28], 0xea65d338
inc edx
mov dword [ebp - 0x1c], ebx
jmp 0x10058077
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14c]
mov dword [eax + ecx*4], 0x4911ccfe
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edx
jl 0x10058064
cmp dword [ebp - 0x14], ebx
je 0x10058188
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], 0x7f3c88fe
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x14], 8
jmp 0x1005817c
mov dword [ebp - 0x20], 0xccce1e2c
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x44], 0xa7bc6c89
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x20], 0xf
jmp 0x10058122
mov dword [ebp - 0x28], 3
mov eax, dword [ebp - 0x28]
add eax, dword [ebp - 0x2c]
je 0x100580d9
mov edi, edx
cmp dword [ebp - 0x14], ebx
jne 0x100580db
mov edi, ebx
mov eax, dword [ebp - 0x2c]
xor edx, edx
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
add ecx, 0xc694
cmp eax, ecx
mov eax, dword [ebp - 0x28]
setge dl
xor ecx, ecx
cmp edx, eax
setl cl
xor eax, eax
cmp edi, ecx
setle al
xor ecx, ecx
cmp ecx, eax
mov eax, dword [ebp - 0x20]
sbb edx, edx
inc edx
cmp edx, eax
setle cl
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x20], ebx
jne 0x10058128
dec dword [ebp - 0x20]
push 1
pop edx
cmp dword [ebp - 0x20], 0xfffffff9
jne 0x100580c3
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xf9e6b99b
sbb eax, eax
neg eax
cmp eax, dword [ebp - 0x1c]
jne 0x10058144
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x28], ebx
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x34]
cmp dword [ebp - 0x20], 5
mov eax, dword [ebp - 0x1c]
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
push 1
setne cl
mov dword [ebp - 0x1c], ecx
inc dword [ebp - 0x14]
pop edx
cmp dword [ebp - 0x14], 0x37
jle 0x100580a2
jmp 0x100581df
push 2
lea ecx, [ebp - 0x128]
call fcn.1001ba30
mov dword [ebp - 0x1c], ebx
jmp 0x100581ad
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x128]
mov dword [eax + ecx*4], 0x4e023024
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x1005819a
mov dword [ebp - 0x24], ebx
jmp 0x100581cb
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x128]
mov dword [eax + ecx*4], 7
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 2
jl 0x100581b8
dec dword [ebp - 0x28]
lea ecx, [ebp - 0x128]
call fcn.1001bab2
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14c]
call fcn.1001bab2
cmp dword [ebp - 0x3c], 0
jle 0x100585c4
mov eax, dword [esi]
lea ecx, [ebp - 0x68]
push dword [ebp + 8]
movdqa xmm0, xmmword [0x1000cde0]
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x1cc]
push eax
lea eax, [ebp - 0x1dc]
mov dword [ebp - 0x24], 0xfffffff8
push eax
mov dword [ebp - 0x14], 0x1f13b01d
push ebx
movdqu xmmword [ebp - 0x1dc], xmm0
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
call fcn.10020cef
mov dword [ebp - 0x1c], ebx
jmp 0x10058254
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x154], 0xfffffff6
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x10058243
xor edi, edi
inc edi
cmp dword [ebp - 0x24], ebx
jne 0x10058272
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
inc eax
cmp eax, edi
mov eax, ebx
jge 0x10058274
mov eax, edi
cmp eax, dword [ebp - 0x14]
jle 0x100583ce
mov dword [ebp - 0x30], 0xfffffff7
mov dword [ebp - 0x2c], 0xede5c489
mov dword [ebp - 0x1c], 0xfffffffa
mov dword [ebp - 0x20], 0xfffffffc
mov dword [ebp - 0x14], 3
cmp dword [ebp - 0x14], ebx
jl 0x1005835f
mov esi, dword [ebp - 0x68]
mov dword [ebp - 0x34], esi
mov ecx, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + ecx*4]
cmp eax, dword [esi + 0xc]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x30]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x68]
sete cl
xor edx, edx
sub ecx, 0xffff
cmp ecx, dword [eax + esi*4]
mov eax, dword [ebp - 0x24]
setg dl
imul eax, edx
sub eax, dword [ebp - 0x30]
neg eax
sbb eax, eax
inc eax
cmp eax, 3
jne 0x100582f8
mov eax, ebx
cmp dword [ebp - 0x2c], ebx
je 0x100582fa
mov eax, edi
xor ecx, ecx
cmp eax, 0x4e401d93
mov eax, dword [ebp - 0x68]
setge cl
imul ecx, dword [eax]
neg ecx
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x30], 0xb891
jg 0x10058325
mov eax, ebx
cmp dword [ebp - 0x30], ebx
je 0x10058327
mov eax, edi
mov esi, dword [ebp - 0x34]
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x14]
cmp dword [ebp - 0x1c], edi
mov eax, dword [ebp - 0x68]
sbb ecx, ecx
inc ecx
push 0
cmp dword [eax + edx*4], ecx
mov eax, dword [ebp - 0x30]
pop ecx
sete cl
imul eax, ecx
xor ecx, ecx
cmp eax, dword [esi + 8]
setle cl
mov dword [ebp - 0x20], ecx
dec dword [ebp - 0x14]
jns 0x100582af
mov esi, dword [ebp - 0x48]
mov edx, dword [ebp - 0x1c]
xor ecx, ecx
mov eax, dword [ebp - 0x14]
dec edx
cmp edx, eax
setge cl
cmp ecx, dword [ebp - 0x1c]
jg 0x10058379
mov edx, edi
cmp dword [ebp - 0x2c], ebx
jne 0x1005837b
mov edx, ebx
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
sete cl
sub ecx, dword [ebp - 0x14]
mov dword [ebp - 0x24], ecx
jne 0x10058394
cmp dword [ebp - 0x24], ebx
jne 0x10058394
mov edi, ebx
mov eax, dword [ebp - 0x68]
xor edx, edx
cmp dword [eax + 4], edi
mov eax, dword [ebp - 0x30]
setne dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [ebp - 0x30]
setge cl
xor edx, edx
cmp ecx, eax
setne dl
mov dword [ebp - 0x154], edx
mov dword [ebp - 0x20], edx
xor edx, edx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
cmp eax, ecx
setg dl
mov dword [ebp - 0x1c], edx
jmp 0x100583e3
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x100583e3
push ebx
push 0x392
call dword [sym.imp.GDI32.dll_SelectClipRgn]
lea ecx, [ebp - 0x68]
call fcn.1001bab2
mov dword [ebp - 0x34], 0xcec3
xor ecx, ecx
mov dword [ebp - 0x34], 0xc4d8e5cc
inc ecx
mov dword [ebp - 0x34], 0x394a2a4f
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x34], 0x11c15747
mov dword [ebp - 0x34], 0x2d76715f
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x1c], ebx
jmp 0x10058437
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x20c], 0xc590f023
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x10058426
inc dword [ebp - 0x28]
mov edi, dword [esi + 4]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x14], ebx
jmp 0x1005845c
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x5c], 0xa1f9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1005844e
mov dword [ebp - 0x14], ebx
jmp 0x10058475
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x54], 6
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x10058467
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x14], ebx
jmp 0x1005856d
mov dword [ebp - 0x20], 0xb6917ab6
mov dword [ebp - 0x2c], 0xe177c422
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x54]
cmp dword [ebp - 0x54], 0xec995f76
sbb eax, eax
neg eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x20], ebx
jmp 0x10058561
mov dword [ebp - 0x40], ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x5c]
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax*4 - 0x5c], ebx
jne 0x10058549
cmp dword [ebp - 0x20], ebx
je 0x100584e4
cmp dword [ebp - 0x54], ebx
jne 0x100584eb
cmp dword [ebp - 0x34], ebx
jne 0x100584eb
mov ecx, ebx
mov eax, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp + eax*4 - 0x5c]
sub ecx, eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x5c]
cmp ecx, eax
setge dl
xor ecx, ecx
imul edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
cmp edx, eax
mov eax, dword [ebp - 0x5c]
setl cl
cmp ecx, 9
sbb ecx, ecx
neg ecx
sub ecx, 0xffff
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [ebp - 0x54]
setg dl
xor ecx, ecx
sub edx, eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x5c]
cmp edx, eax
mov eax, dword [ebp - 0x20]
setg cl
sub eax, ecx
je 0x10058556
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax*4 - 0x5c], ebx
je 0x10058556
mov eax, ecx
jmp 0x1005855b
xor ecx, ecx
mov eax, ebx
inc ecx
mov dword [ebp - 0x40], eax
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jle 0x100584c7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jle 0x10058488
add esi, 8
test edi, edi
jne 0x10058580
add esi, 8
mov dword [ebp - 0x34], 8
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10058597
push ebx
call dword [sym.imp.KERNEL32.dll_SuspendThread]
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x100585b5
push 0x2101
push 0x8ec
push 0xa79
call dword [sym.imp.GDI32.dll_LineTo]
add esi, dword [ebp - 0x50]
dec dword [ebp - 0x3c]
mov dword [ebp - 0x48], esi
jne 0x100581f8
mov edi, dword [esi]
lea ecx, [ebp - 0x140]
xor eax, eax
mov dword [ebp - 0x24], edi
inc eax
mov dword [ebp - 0x2c], eax
push eax
call fcn.1001ba30
xor edx, edx
mov dword [ebp - 0x34], 0x405732aa
mov dword [ebp - 0x3c], ebx
inc edx
jmp 0x100585f9
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x140]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], edx
jl 0x100585ea
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x1005862f
push 0x828
push 0x1fdf
push 0x17e6
push 0x156f
push 0x2298
push ebx
push ebx
push ebx
push ebx
push 0x335
call dword [sym.imp.USER32.dll_DrawStateW]
cmp dword [ebp - 0x2c], ebx
jne 0x1005863d
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x140]
mov ecx, 0xa062b000
cmp ecx, dword [eax]
lea ecx, [ebp - 0x140]
sbb eax, eax
inc eax
mov dword [ebp - 0x34], eax
call fcn.1001bab2
mov eax, dword [esi + 4]
xor ecx, ecx
mov dword [ebp - 0x34], 0xffffffff
inc ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x34], 0x1826
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
mov dword [ebp - 0x40], eax
je 0x1005868f
push 0x2c7
call dword [sym.imp.USER32.dll_GetSysColorBrush]
xor ecx, ecx
inc ecx
mov dword [ebp - 0x34], 0xbd53d2ae
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x3c], ebx
jmp 0x100586af
mov eax, dword [ebp - 0x3c]
mov dword [ebp + eax*4 - 0x104], 0x9b55
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], 4
jl 0x1005869e
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], 3
jg 0x10058760
mov dword [ebp - 0x1c], 0x51f20002
mov dword [ebp - 0x34], 0x3df2ef51
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
jne 0x100587e2
mov dword [ebp - 0x1c], 3
cmp dword [ebp - 0x1c], ebx
jl 0x10058750
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10058708
push ebx
push 0xf7b
push 0x177c
push 0x129d
call dword [sym.imp.GDI32.dll_SetViewportExtEx]
mov eax, dword [ebp - 0x20]
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x104]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x104]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + eax*4 - 0x104]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + eax*4 - 0x104]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + eax*4 - 0x104]
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
neg edx
cmp edx, eax
setg cl
mov dword [ebp - 0x34], ecx
dec dword [ebp - 0x1c]
jns 0x100586e9
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jle 0x100586c2
xor ecx, ecx
inc ecx
cmp dword [ebp - 0x40], 0
jne 0x10058842
cmp byte [ebp - 0x4c], 0
je 0x1005877e
cmp dword [ebp - 0x38], ecx
jne 0x1005877e
mov ecx, dword [ebp + 8]
lea eax, [edi + 0x10]
add dword [ecx + 8], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x28], eax
mov eax, dword [esi + 0xc]
push edi
mov dword [ebp - 0x34], eax
call fcn.1005d53b
pop ecx
mov dword [ebp - 0x48], eax
lea ecx, [ebp - 0x80]
lea eax, [ebp - 0xc4]
mov dword [ebp - 0xc4], ebx
push eax
push edi
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x78], ebx
call fcn.1005bb0d
mov ecx, dword [ebp - 0x80]
mov edx, ebx
mov dword [ebp - 0x44], edx
test edi, edi
jle 0x1005881b
xor edi, edi
inc edi
mov eax, edx
and eax, 0x80000001
jns 0x100587d0
dec eax
or eax, 0xfffffffe
inc eax
neg eax
sbb eax, eax
and eax, dword [ebp - 0x28]
add eax, edx
add eax, dword [ebp - 0x28]
imul eax, dword [ebp - 0x34]
jmp 0x100587f0
push 0x1e5d
call dword [sym.imp.KERNEL32.dll_ExitProcess]
lea eax, [edx + 1]
cdq
idiv dword [ebp - 0x24]
cmp word [ecx + edx*2], bx
jne 0x100587ed
mov word [ecx + edx*2], di
mov al, byte [edx + esi + 0x10]
mov edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x48]
mov byte [edx + ecx], al
inc edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x80]
mov dword [ebp - 0x44], edx
cmp edx, eax
jl 0x100587c2
jmp 0x10058821
mov eax, dword [ebp - 0x24]
xor edi, edi
inc edi
mov edx, dword [ebp + 8]
mov dword [edx], eax
mov eax, dword [ebp - 0x48]
mov dword [edx + 4], eax
test ecx, ecx
je 0x10058845
push ecx
call fcn.10062709
pop ecx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x78], ebx
jmp 0x10058845
xor edi, edi
inc edi
push dword [ebp + 8]
movdqa xmm0, xmmword [0x1000cde0]
lea eax, [ebp - 0x19c]
push eax
lea eax, [ebp - 0x1ac]
mov dword [ebp - 0x24], 0xfffffff8
push eax
mov dword [ebp - 0x14], 0x1f13b01d
lea ecx, [ebp - 0x74]
push ebx
movdqu xmmword [ebp - 0x1ac], xmm0
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
call fcn.10020cef
mov dword [ebp - 0x3c], ebx
jmp 0x1005889c
mov eax, dword [ebp - 0x3c]
mov dword [ebp + eax*4 - 0x168], 0xfffffff6
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], 2
jl 0x1005888b
cmp dword [ebp - 0x24], ebx
jne 0x100588b7
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
inc eax
cmp eax, edi
mov eax, ebx
jge 0x100588b9
mov eax, edi
cmp eax, dword [ebp - 0x14]
jle 0x10058a10
mov dword [ebp - 0x30], 0xfffffff7
mov dword [ebp - 0x38], 0xede5c489
mov dword [ebp - 0x3c], 0xfffffffa
mov dword [ebp - 0x2c], 0xfffffffc
mov dword [ebp - 0x14], 3
cmp dword [ebp - 0x14], ebx
jl 0x100589a1
mov esi, dword [ebp - 0x74]
mov dword [ebp - 0x34], esi
mov ecx, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x74]
mov eax, dword [eax + ecx*4]
cmp eax, dword [esi + 0xc]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x30]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x74]
sete cl
xor edx, edx
sub ecx, 0xffff
cmp ecx, dword [eax + esi*4]
mov eax, dword [ebp - 0x24]
setg dl
imul eax, edx
sub eax, dword [ebp - 0x30]
neg eax
sbb eax, eax
inc eax
cmp eax, 3
jne 0x1005893d
mov eax, ebx
cmp dword [ebp - 0x38], ebx
je 0x1005893f
mov eax, edi
xor ecx, ecx
cmp eax, 0x4e401d93
mov eax, dword [ebp - 0x74]
setge cl
imul ecx, dword [eax]
neg ecx
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x38]
cmp dword [ebp - 0x30], 0xb891
jg 0x1005896a
mov eax, ebx
cmp dword [ebp - 0x30], ebx
je 0x1005896c
mov eax, edi
mov esi, dword [ebp - 0x34]
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp - 0x14]
cmp dword [ebp - 0x3c], edi
mov eax, dword [ebp - 0x74]
sbb ecx, ecx
inc ecx
push 0
cmp dword [eax + edx*4], ecx
mov eax, dword [ebp - 0x30]
pop ecx
sete cl
imul eax, ecx
xor ecx, ecx
cmp eax, dword [esi + 8]
setle cl
mov dword [ebp - 0x2c], ecx
dec dword [ebp - 0x14]
jns 0x100588f4
mov edx, dword [ebp - 0x3c]
xor ecx, ecx
mov eax, dword [ebp - 0x14]
dec edx
cmp edx, eax
setge cl
cmp ecx, dword [ebp - 0x3c]
jg 0x100589bb
mov edx, edi
cmp dword [ebp - 0x38], ebx
jne 0x100589bd
mov edx, ebx
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
sete cl
sub ecx, dword [ebp - 0x14]
mov dword [ebp - 0x24], ecx
jne 0x100589d4
cmp dword [ebp - 0x24], ebx
je 0x100589d6
mov ebx, edi
mov eax, dword [ebp - 0x74]
xor edx, edx
cmp dword [eax + 4], ebx
mov eax, dword [ebp - 0x30]
setne dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [ebp - 0x30]
setge cl
xor edx, edx
cmp ecx, eax
setne dl
mov dword [ebp - 0x168], edx
mov dword [ebp - 0x2c], edx
xor edx, edx
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
cmp eax, ecx
setg dl
mov dword [ebp - 0x3c], edx
jmp 0x10058a25
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10058a25
push ebx
push 0x392
call dword [sym.imp.GDI32.dll_SelectClipRgn]
lea ecx, [ebp - 0x74]
call fcn.1001bab2
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret