Function at 0x10036e81
Capabilities:
Extract resource via kernel32 functions
Get common file path
Get disk information
Get geographical location
Query environment variable
Query or enumerate registry key

Disassembly:
mov eax, 0x10062960
call fcn.10061850
sub esp, 0x8a0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x50], ecx
lea ecx, [ebp - 0x3b4]
push 2
mov byte [ebp - 0x60], dl
call fcn.10010bbe
xor ebx, ebx
mov dword [ebp - 0x38], 0x57976326
mov dword [ebp - 0x20], ebx
jmp 0x10036ec7
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x3b4]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x10036eb8
xor eax, eax
mov dword [ebp - 0x38], ebx
inc eax
jmp 0x10036f14
mov dword [ebp - 0x4c], 0x36444696
mov dword [ebp - 0x2c], 0x673292c5
mov dword [ebp - 0x4c], ebx
jmp 0x10036f0c
mov ecx, dword [ebp - 0x38]
xor edx, edx
mov eax, dword [ebp - 0x3b4]
cmp dword [eax + ecx*4], ebx
setne dl
xor eax, eax
test edx, edx
setns al
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x4c]
inc dword [ebp - 0x4c]
xor eax, eax
inc eax
cmp dword [ebp - 0x4c], eax
jle 0x10036ee8
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], eax
jle 0x10036ed5
lea ecx, [ebp - 0x3b4]
call fcn.10010c40
mov dword [ebp - 0x14], 0xa0734f09
xor ecx, ecx
mov dword [ebp - 0x5c], 0x15aa9614
inc ecx
mov dword [ebp - 0x20], ebx
jmp 0x10036f4b
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x194], 0x6f97812a
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jl 0x10036f3a
cmp dword [ebp - 0x14], ebx
jne 0x10036f71
mov ecx, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x14]
cmp ecx, eax
setg dl
mov dword [ebp - 0x5c], edx
cmp dword [ebp - 0x5c], ebx
jne 0x10036f6e
mov esi, ebx
jmp 0x10036f73
xor ecx, ecx
inc ecx
mov esi, ecx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov eax, dword [ebp - 0x14]
cmp eax, 5
setg cl
xor edx, edx
cmp esi, ecx
setg dl
sub edx, 0xd945
neg edx
sbb edx, edx
or edi, 0xffffffff
inc edx
mov dword [ebp - 0x194], edx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
add eax, edx
add ecx, eax
xor eax, eax
cmp ecx, edi
setg al
dec eax
je 0x10037027
mov dword [ebp - 0x2c], 0x943af780
mov dword [ebp - 0x14], ebx
jmp 0x10037020
push 4
lea ecx, [ebp - 0x4a4]
call fcn.10010bbe
mov dword [ebp - 0x20], ebx
jmp 0x10036fe1
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x4a4]
mov dword [eax + ecx*4], 0xfffffffe
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jl 0x10036fce
mov eax, dword [ebp - 0x4a4]
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], bl
je 0x10037012
push ebx
push 0xc8b
push 0x22ef
push 0x22a7
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
lea ecx, [ebp - 0x4a4]
call fcn.10010c40
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jle 0x10036fbc
jmp 0x1003703b
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], bl
je 0x1003703b
push 0x3af
push ebx
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
push 2
lea ecx, [ebp - 0x3e4]
call fcn.10010bbe
mov dword [ebp - 4], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x30], 0xa062b000
mov dword [ebp - 0x5c], 1
mov dword [ebp - 0x2c], ebx
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x1003707e
push ebx
push 0xdf6
push 0x24fd
push 0x12b5
call dword [sym.imp.GDI32.dll_SetDIBColorTable]
mov eax, dword [ebp - 0x4c]
xor edx, edx
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x4c]
imul ecx, eax, 0x5613
mov eax, dword [ebp - 0x4c]
cmp ecx, eax
setle dl
cmp edi, edx
sbb eax, eax
inc eax
add eax, dword [ebp - 0x4c]
jne 0x100370ad
cmp dword [ebp - 0x30], ebx
jne 0x100370ad
mov edx, ebx
jmp 0x100370b0
xor edx, edx
inc edx
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp eax, edx
setg cl
xor edx, edx
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x4c]
cmp eax, ecx
setne dl
xor eax, eax
cmp edx, edi
setne al
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x34], 0x57976326
mov dword [ebp - 0x20], ebx
jmp 0x100370ef
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x3e4]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x100370e0
mov dword [ebp - 0x18], 0x25b0e446
lea ecx, [ebp - 0x2a4]
push 3
call fcn.10010bbe
push 3
mov dword [ebp - 0x2c], 0xfffffffb
mov dword [ebp - 0x14], ebx
pop edx
jmp 0x10037125
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x3cc], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x10037118
mov dword [ebp - 0x14], ebx
jmp 0x10037142
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2a4]
mov dword [eax + ecx*4], 0xfffffff8
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x1003712f
cmp dword [ebp - 0x18], ebx
jne 0x10037172
mov eax, dword [ebp - 0x3c4]
mov eax, dword [ebp - 0x3c4]
mov eax, dword [ebp - 0x3c4]
mov ecx, dword [ebp - 0x18]
sub ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2a4]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
mov eax, dword [ebp - 0x2a4]
cmp dword [eax + 4], ebx
setne cl
mov dword [ebp - 0x2c], ecx
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x10037195
call dword [sym.imp.GDI32.dll_GdiFlush]
lea ecx, [ebp - 0x2a4]
call fcn.10010c40
xor eax, eax
mov dword [ebp - 0x34], ebx
inc eax
jmp 0x10037313
mov dword [ebp - 0x38], 0x36444696
mov dword [ebp - 0x2c], 0x673292c5
mov dword [ebp - 0x38], ebx
jmp 0x10037307
mov dword [ebp - 0x14], ebx
lea ecx, [ebp - 0x51c]
push 2
call fcn.10010bbe
mov byte [ebp - 4], 1
mov dword [ebp - 0x20], ebx
jmp 0x100371ed
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x51c]
mov dword [eax + ecx*4], 0x4a6f4440
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x100371da
mov dword [ebp - 0x14], 0xfffffff6
jmp 0x10037276
push 2
lea ecx, [ebp - 0x31c]
call fcn.10010bbe
mov dword [ebp - 0x4c], 5
mov dword [ebp - 0x20], ebx
jmp 0x10037228
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x31c]
mov dword [eax + ecx*4], 0x1ad386cc
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x10037215
xor edx, edx
mov dword [ebp - 0x4c], ebx
inc edx
jmp 0x1003725e
mov dword [ebp - 0x18], 0x54165132
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], ebx
jl 0x1003725b
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x31c]
cmp dword [eax + ecx*4], ebx
jne 0x1003725b
mov eax, dword [ebp - 0x14]
dec dword [ebp - 0x18]
jns 0x10037245
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], edx
jle 0x10037236
lea ecx, [ebp - 0x31c]
cmp dword [ebp - 0x14], ebx
jne 0x1003727e
call fcn.10010c40
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xfffffffe
jl 0x100371fc
jmp 0x10037283
call fcn.10010c40
mov dword [ebp - 0x14], 0xf
cmp dword [ebp - 0x14], edi
jge 0x100372d5
mov esi, dword [ebp - 0x51c]
mov dword [ebp - 0x20], ebx
jmp 0x100372a7
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x5c4], ebx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x1003729a
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x100372c4
push 0x13a4
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualQueryEx]
mov eax, dword [ebp - 0x5c4]
mov dword [esi + 4], eax
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10037295
lea ecx, [ebp - 0x51c]
mov byte [ebp - 4], bl
call fcn.10010c40
mov ecx, dword [ebp - 0x34]
xor edx, edx
mov eax, dword [ebp - 0x3e4]
cmp dword [eax + ecx*4], ebx
setne dl
xor eax, eax
test edx, edx
setns al
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x38]
inc dword [ebp - 0x38]
xor eax, eax
inc eax
cmp dword [ebp - 0x38], eax
jle 0x100371c1
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], eax
jle 0x100371ab
lea ecx, [ebp - 0x3e4]
mov dword [ebp - 4], edi
call fcn.10010c40
mov dword [ebp - 0x20], 0x5540d7f8
mov dword [ebp - 0x20], ebx
jmp 0x10037341
mov dword [ebp - 0x2c], ebx
cmp dword [ebp - 0x2c], ebx
jne 0x10037346
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
je 0x10037336
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x10037397
push ebx
push 0xd64
push 0xeeb
push 0x1595
push 0x804
push 0x9c7
push 0x16b9
push 0x127
push 0xa20
push 0x1eb6
push 0x17d7
push 0xd76
push 0x12fe
push 0x25a6
call dword [sym.imp.GDI32.dll_CreateFontA]
mov dword [ebp - 0x30], 0xb1510afb
xor ecx, ecx
mov dword [ebp - 0xdc], ebx
inc ecx
mov dword [ebp - 0xd8], ebx
mov dword [ebp - 0xd4], ebx
mov dword [ebp - 0xd0], ebx
mov dword [ebp - 0x5c], 0x6de0d615
mov dword [ebp - 0x30], 0x2ce6c1cc
mov dword [ebp - 0x20], ebx
jmp 0x100373da
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x70], 0xb9f9b31
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jl 0x100373cc
mov dword [ebp - 0x70], ebx
cmp dword [ebp - 0x70], 0xffffffe7
je 0x10037599
jmp 0x100373f1
xor ecx, ecx
inc ecx
mov dword [ebp - 0x48], 0xf1bf506e
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x48], 0x1a
cmp dword [ebp - 0x48], 0xfffffff1
jle 0x10037522
push 2
lea ecx, [ebp - 0x2bc]
call fcn.10010bbe
mov dword [ebp - 0x18], 0xe458c458
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], 0x50ebf085
mov dword [ebp - 0x20], ebx
jmp 0x10037442
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2bc]
mov dword [eax + ecx*4], 0x693e932
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x1003742f
mov ecx, dword [ebp - 0x48]
xor edx, edx
mov eax, dword [ebp - 0x2bc]
mov dword [eax], ecx
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x48]
cmp eax, ecx
mov eax, dword [ebp - 0xd0]
setl dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x2c]
setl bl
xor ecx, ecx
cmp ebx, eax
sete cl
cmp ecx, dword [ebp - 0x48]
jne 0x10037482
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x48]
xor edx, edx
mov eax, dword [ebp - 0x70]
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x70]
cmp ecx, eax
setne dl
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0xd8]
imul eax, dword [ebp - 0x30]
test eax, eax
jne 0x100374b7
cmp dword [ebp - 0x48], eax
je 0x100374ba
xor eax, eax
inc eax
cmp eax, 1
sbb eax, eax
xor ebx, ebx
neg eax
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x2bc]
cmp dword [eax], ecx
mov eax, dword [ebp - 0xd0]
sete bl
add ebx, 0xffff7899
neg ebx
sbb ebx, ebx
xor edx, edx
neg ebx
cmp ebx, eax
mov eax, dword [ebp - 0x28]
setne dl
xor ecx, ecx
cmp edx, eax
setl cl
imul ecx, dword [ebp - 0xd0]
mov dword [ebp - 0x18], ecx
lea ecx, [ebp - 0x2bc]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x30], eax
call fcn.10010c40
dec dword [ebp - 0x48]
cmp dword [ebp - 0x48], 0xfffffff1
push 0
pop ebx
jg 0x1003740c
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
test eax, eax
mov eax, dword [ebp - 0xd0]
setns cl
xor edx, edx
add ecx, eax
mov eax, dword [ebp - 0x4c]
cmp ecx, eax
setle dl
sub edx, 0xc535
neg edx
sbb edx, edx
inc edx
sub edx, dword [ebp - 0x4c]
imul edx, dword [ebp - 0x4c]
cmp dword [ebp - 0x48], edx
jle 0x10037558
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0xd8]
xor ecx, ecx
inc ecx
xor edx, edx
sub ecx, eax
mov dword [ebp - 0x48], ecx
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0xd0]
cmp ecx, eax
mov eax, dword [ebp - 0xd0]
setl dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x30], ecx
dec dword [ebp - 0x70]
cmp dword [ebp - 0x70], 0xffffffe7
jne 0x100373ee
push 2
lea ecx, [ebp - 0x4d4]
call fcn.10010bbe
push 2
pop eax
push eax
lea ecx, [ebp - 0x118]
mov dword [ebp - 4], eax
call fcn.10010bbe
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x4bc]
mov dword [ebp - 0x30], 0x5fa2ef70
mov dword [ebp - 0x18], 0xfffffff7
mov dword [ebp - 0x20], 9
push 2
call fcn.10010bbe
push 2
mov dword [ebp - 0x14], ebx
pop edx
jmp 0x100375f9
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x118]
mov dword [eax + ecx*4], 0xfff6
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x100375e6
mov dword [ebp - 0x14], ebx
jmp 0x10037616
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x4bc]
mov dword [eax + ecx*4], 0xfffffffc
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x10037603
mov ecx, dword [ebp - 0x118]
cmp dword [ecx], ebx
jne 0x10037635
mov dword [ebp - 0x30], 0x42206dd2
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x118]
xor edx, edx
inc edx
mov eax, edx
sub eax, dword [ecx]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x4bc]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
cmp eax, dword [esi + 4]
jge 0x1003765a
mov ecx, ebx
cmp dword [ebp - 0x20], ebx
je 0x1003765c
mov ecx, edx
xor eax, eax
cmp ecx, 0xfffffffd
setne al
xor ecx, ecx
cmp eax, dword [esi + 4]
mov eax, dword [ebp - 0x118]
setge cl
imul ecx, dword [eax]
test ecx, ecx
je 0x1003767c
mov eax, dword [ebp - 0x18]
imul eax, dword [esi + 4], 0x69c9
test eax, eax
je 0x1003768e
mov eax, edx
cmp dword [ebp - 0x30], ebx
jne 0x10037690
mov eax, ebx
mov ecx, dword [ebp - 0x118]
xor edx, edx
cmp eax, dword [ecx]
setle dl
xor eax, eax
cmp edx, dword [ecx + 4]
lea ecx, [ebp - 0x4bc]
setle al
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x118]
mov eax, dword [eax]
mov dword [esi + 4], eax
call fcn.10010c40
lea ecx, [ebp - 0x118]
mov byte [ebp - 4], 2
call fcn.10010c40
mov dword [ebp - 0x34], 0x57976326
xor ecx, ecx
mov dword [ebp - 0x14], 0xa0734f09
inc ecx
mov dword [ebp - 0x5c], 0x15aa9614
mov dword [ebp - 0x20], ebx
jmp 0x10037704
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x248], 0x6f97812a
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jl 0x100376f3
cmp dword [ebp - 0x14], ebx
jne 0x1003772a
mov ecx, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x14]
cmp ecx, eax
setg dl
mov dword [ebp - 0x5c], edx
cmp dword [ebp - 0x5c], ebx
jne 0x10037727
mov esi, ebx
jmp 0x1003772c
xor ecx, ecx
inc ecx
mov esi, ecx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov eax, dword [ebp - 0x14]
cmp eax, 5
setg cl
xor edx, edx
cmp esi, ecx
setg dl
sub edx, 0xd945
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x248], edx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
add eax, edx
add ecx, eax
xor eax, eax
cmp ecx, edi
setg al
dec eax
je 0x100377de
mov dword [ebp - 0x2c], 0x943af780
mov dword [ebp - 0x14], ebx
jmp 0x100377d7
push 4
lea ecx, [ebp - 0x3fc]
call fcn.10010bbe
mov dword [ebp - 0x20], ebx
jmp 0x10037797
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x3fc]
mov dword [eax + ecx*4], 0xfffffffe
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jl 0x10037784
mov eax, dword [ebp - 0x3fc]
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x100377c9
push ebx
push 0xc8b
push 0x22ef
push 0x22a7
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
lea ecx, [ebp - 0x3fc]
call fcn.10010c40
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jle 0x10037772
jmp 0x100377f3
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x100377f3
push 0x3af
push ebx
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
mov dword [ebp - 0x20], ebx
jmp 0x10037807
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x4d4]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x100377f8
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x30], 0xa062b000
mov dword [ebp - 0x5c], 1
mov dword [ebp - 0x2c], ebx
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x10037840
push ebx
push 0xdf6
push 0x24fd
push 0x12b5
call dword [sym.imp.GDI32.dll_SetDIBColorTable]
mov eax, dword [ebp - 0x4c]
xor edx, edx
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x4c]
imul ecx, eax, 0x5613
mov eax, dword [ebp - 0x4c]
cmp ecx, eax
setle dl
cmp edi, edx
sbb eax, eax
inc eax
add eax, dword [ebp - 0x4c]
jne 0x1003786f
cmp dword [ebp - 0x30], ebx
jne 0x1003786f
mov edx, ebx
jmp 0x10037872
xor edx, edx
inc edx
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp eax, edx
setg cl
xor edx, edx
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x4c]
cmp eax, ecx
setne dl
xor eax, eax
cmp edx, edi
setne al
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x34], ebx
jmp 0x10037ab0
mov dword [ebp - 0x38], 0x36444696
lea ecx, [ebp - 0x364]
mov dword [ebp - 0x2c], 0x673292c5
mov dword [ebp - 0x18], 0x25b0e446
push 3
call fcn.10010bbe
push 3
mov dword [ebp - 0x2c], 0xfffffffb
mov dword [ebp - 0x14], ebx
pop edx
jmp 0x100378dc
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x558], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x100378cf
mov dword [ebp - 0x14], ebx
jmp 0x100378f9
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x364]
mov dword [eax + ecx*4], 0xfffffff8
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x100378e6
cmp dword [ebp - 0x18], ebx
jne 0x10037929
mov eax, dword [ebp - 0x550]
mov eax, dword [ebp - 0x550]
mov eax, dword [ebp - 0x550]
mov ecx, dword [ebp - 0x18]
sub ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x364]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
mov eax, dword [ebp - 0x364]
cmp dword [eax + 4], ebx
setne cl
mov dword [ebp - 0x2c], ecx
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x1003794c
call dword [sym.imp.GDI32.dll_GdiFlush]
lea ecx, [ebp - 0x364]
call fcn.10010c40
mov dword [ebp - 0x38], ebx
jmp 0x10037aa3
mov dword [ebp - 0x14], ebx
lea ecx, [ebp - 0x414]
push 2
call fcn.10010bbe
mov byte [ebp - 4], 4
mov dword [ebp - 0x20], ebx
jmp 0x1003798b
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x414]
mov dword [eax + ecx*4], 0x4a6f4440
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x10037978
mov dword [ebp - 0x14], 0xfffffff6
jmp 0x10037a14
push 2
lea ecx, [ebp - 0x2d4]
call fcn.10010bbe
mov dword [ebp - 0x4c], 5
mov dword [ebp - 0x20], ebx
jmp 0x100379c6
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2d4]
mov dword [eax + ecx*4], 0x1ad386cc
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x100379b3
xor edx, edx
mov dword [ebp - 0x4c], ebx
inc edx
jmp 0x100379fc
mov dword [ebp - 0x18], 0x54165132
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], ebx
jl 0x100379f9
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x2d4]
cmp dword [eax + ecx*4], ebx
jne 0x100379f9
mov eax, dword [ebp - 0x14]
dec dword [ebp - 0x18]
jns 0x100379e3
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], edx
jle 0x100379d4
lea ecx, [ebp - 0x2d4]
cmp dword [ebp - 0x14], ebx
jne 0x10037a1c
call fcn.10010c40
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xfffffffe
jl 0x1003799a
jmp 0x10037a21
call fcn.10010c40
mov dword [ebp - 0x14], 0xf
cmp dword [ebp - 0x14], edi
jge 0x10037a73
mov esi, dword [ebp - 0x414]
mov dword [ebp - 0x20], ebx
jmp 0x10037a45
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x5d8], ebx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x10037a38
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x10037a62
push 0x13a4
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualQueryEx]
mov eax, dword [ebp - 0x5d8]
mov dword [esi + 4], eax
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10037a33
lea ecx, [ebp - 0x414]
mov byte [ebp - 4], 2
call fcn.10010c40
mov ecx, dword [ebp - 0x34]
xor edx, edx
mov eax, dword [ebp - 0x4d4]
cmp dword [eax + ecx*4], ebx
setne dl
xor eax, eax
test edx, edx
setns al
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x38]
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 1
jle 0x1003795f
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 1
jle 0x1003789e
lea ecx, [ebp - 0x4d4]
mov dword [ebp - 4], edi
call fcn.10010c40
mov dword [ebp - 0x14], 0x53b26bdd
mov esi, 0x1006960c
mov dword [ebp - 0x34], 0x7606e82a
mov dword [ebp - 0x40], 0x3ecfb861
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x4c], 4
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], 0xe
je 0x10037cd4
push 1
lea ecx, [ebp - 0x1ac]
call fcn.10010bbe
xor edx, edx
mov dword [ebp - 4], 5
mov dword [ebp - 0x20], ebx
inc edx
jmp 0x10037b2b
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1ac]
mov dword [eax + ecx*4], 0xcfb6318d
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edx
jl 0x10037b18
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x10037b46
push ebx
push 0x22c9
push ebx
call dword [sym.imp.GDI32.dll_GetMetaFileBitsEx]
mov eax, dword [ebp - 0x1ac]
mov dword [eax], 0xf
cmp dword [eax], 0xfffffffa
je 0x10037cbe
mov dword [ebp - 0x20], 0xb4e9
mov dword [ebp - 0x28], 0x88e10e5e
mov dword [ebp - 0x5c], 0x9ea
cmp dword [ebp - 0x5c], 0xc0e
jle 0x10037bd9
mov ecx, ebx
mov dword [ebp - 0x18], ebx
mov eax, ebx
mov dword [ebp - 0x30], ebx
mov esi, ebx
add eax, ecx
mov edi, ebx
mov ecx, esi
shl eax, cl
mov dword [ebp - 0x2c], eax
mov ecx, edi
sar eax, cl
mov ecx, 0x1060aeb8
cdq
push edx
push eax
call fcn.10010996
mov eax, dword [ebp - 0x2c]
inc edi
cmp edi, 0x6863
jl 0x10037b90
mov eax, dword [ebp - 0x30]
inc esi
mov ecx, dword [ebp - 0x18]
cmp esi, 0x47a2
jl 0x10037b85
inc eax
mov dword [ebp - 0x30], eax
cmp eax, 0x3a08
jl 0x10037b83
inc ecx
mov dword [ebp - 0x18], ecx
cmp ecx, 0x446
jl 0x10037b7e
mov esi, dword [ebp - 0x58]
or edi, 0xffffffff
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x28], 0xa760
mov byte [ebp - 4], 6
cmp dword [ebp - 0x5c], 0x761
jge 0x10037c0b
mov edx, 0x1000a4d0
mov ecx, 0x1060aeb8
call fcn.100132ba
xor edx, edx
inc edx
mov dword [ebp - 4], 5
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1ac]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x34]
imul eax, ecx
test eax, eax
je 0x10037c31
test ecx, ecx
jne 0x10037c33
mov edx, ebx
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp edx, eax
setle cl
cmp ecx, 0x4826422f
jle 0x10037c48
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x20]
neg eax
sbb eax, eax
neg eax
sub ecx, eax
xor eax, eax
add ecx, ecx
cmp ecx, 0xdcda
setge al
cmp eax, 0xfff9
sbb eax, eax
inc eax
imul eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x14]
je 0x10037c7a
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x1ac]
mov dword [ebp - 0x34], 0xfffffffd
dec dword [eax]
jmp 0x10037b52
lea ecx, [ebp - 0x1ac]
mov dword [ebp - 4], edi
call fcn.10010c40
inc dword [ebp - 0x14]
jmp 0x10037af2
mov eax, dword [esi]
mov dword [ebp - 0x14], 0x53b26bdd
mov dword [ebp - 0x34], 0x7606e82a
mov dword [ebp - 0x40], 0x3ecfb861
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], 0xe
je 0x10037eb6
push 1
lea ecx, [ebp - 0x240]
call fcn.10010bbe
xor edx, edx
mov dword [ebp - 4], 8
mov dword [ebp - 0x20], ebx
inc edx
jmp 0x10037d2a
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x240]
mov dword [eax + ecx*4], 0xcfb6318d
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edx
jl 0x10037d17
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x10037d45
push ebx
push 0x22c9
push ebx
call dword [sym.imp.GDI32.dll_GetMetaFileBitsEx]
mov eax, dword [ebp - 0x240]
mov dword [eax], 0xf
cmp dword [eax], 0xfffffffa
je 0x10037ea0
mov dword [ebp - 0x20], 0xb4e9
mov dword [ebp - 0x28], 0x88e10e5e
mov dword [ebp - 0x30], 0x17f7
cmp dword [ebp - 0x30], 0x1a1b
jle 0x10037dbb
mov edi, ebx
mov esi, ebx
mov dword [ebp - 0x28], ebx
mov ebx, esi
mov esi, 0x5ea6
mov ecx, ebx
mov eax, edi
sar eax, cl
mov ecx, 0x1060aeb8
cdq
push edx
push eax
call fcn.10010996
dec ebx
dec esi
jne 0x10037d86
mov esi, dword [ebp - 0x28]
inc esi
mov dword [ebp - 0x28], esi
cmp esi, 0x5734
jl 0x10037d7f
inc edi
push 0
pop ebx
cmp edi, 0x7d25
jl 0x10037d7a
or edi, 0xffffffff
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x28], 0xa760
mov byte [ebp - 4], 9
cmp dword [ebp - 0x30], 0x16e2
jge 0x10037ded
mov edx, 0x1000a590
mov ecx, 0x1060aeb8
call fcn.100132ba
xor edx, edx
inc edx
mov dword [ebp - 4], 8
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x240]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x34]
imul eax, ecx
test eax, eax
je 0x10037e13
test ecx, ecx
jne 0x10037e15
mov edx, ebx
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp edx, eax
setle cl
cmp ecx, 0x4826422f
jle 0x10037e2a
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x20]
neg eax
sbb eax, eax
neg eax
sub ecx, eax
xor eax, eax
add ecx, ecx
cmp ecx, 0xdcda
setge al
cmp eax, 0xfff9
sbb eax, eax
inc eax
imul eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x14]
je 0x10037e5c
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x240]
mov dword [ebp - 0x34], 0xfffffffd
dec dword [eax]
jmp 0x10037d51
lea ecx, [ebp - 0x240]
mov dword [ebp - 4], edi
call fcn.10010c40
inc dword [ebp - 0x14]
jmp 0x10037cf1
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x718]
movdqa xmm0, xmmword [0x1000ba40]
push ecx
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
lea eax, [ebp - 0x708]
push eax
push ecx
mov dword [ebp - 0x44], 1
lea ecx, [ebp - 0x1c4]
mov dword [ebp - 0x18], 0x55261fc4
movdqu xmmword [ebp - 0x718], xmm0
call fcn.10010c1a
mov dword [ebp - 0x28], 0xfffffff9
xor edx, edx
mov dword [ebp - 0x24], 0xfffffffa
inc edx
mov dword [ebp - 0x20], ebx
jmp 0x10037f23
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x1f8], 0x9e8e
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edx
jl 0x10037f12
mov dword [ebp - 0x44], 0xfffffff1
jmp 0x10037fba
mov dword [ebp - 0x14], 0xfffffff9
mov dword [ebp - 0x2c], 0x3637b304
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
je 0x10037f51
mov esi, edx
cmp dword [ebp - 0x44], ebx
jne 0x10037f53
mov esi, ebx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp esi, eax
setg cl
cmp ecx, dword [ebp - 0x14]
jge 0x10037f69
mov ecx, ebx
cmp dword [ebp - 0x14], ebx
je 0x10037f6b
mov ecx, edx
xor eax, eax
cmp ecx, 0x409884cb
setl al
add eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x44]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x14], edx
jle 0x10037f9d
mov ecx, edx
cmp dword [ebp - 0x18], ebx
jne 0x10037f9f
mov ecx, ebx
mov eax, dword [ebp - 0x1c4]
mov dword [eax], ecx
xor eax, eax
test ecx, ecx
setne al
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x2c], eax
dec dword [ebp - 0x44]
cmp dword [ebp - 0x44], 0xffffffe9
je 0x10037f34
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], 3
jg 0x10038051
mov dword [ebp - 0x2c], 5
mov esi, dword [ebp - 0x24]
mov edx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x1f8]
mov eax, dword [ebp - 0x1c4]
add ecx, 0x97b2
neg ecx
sbb ecx, ecx
xor ebx, ebx
inc ecx
cmp ecx, dword [eax + edx*4]
mov eax, dword [ebp - 0x18]
setle bl
xor ecx, ecx
cmp eax, 0x7c29
mov dword [ebp - 0x30], ebx
mov eax, dword [ebp - 0x1c4]
setl cl
xor ebx, ebx
cmp dword [eax + esi*4], ecx
mov eax, dword [ebp - 0x2c]
setge bl
xor ecx, ecx
cmp dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x28]
setl cl
xor edx, edx
cmp ebx, ecx
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x1c4]
setne cl
mov dword [eax + edi*4], ecx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 3
jle 0x10037fd1
xor ebx, ebx
or edi, 0xffffffff
lea ecx, [ebp - 0x1c4]
call fcn.10010c40
mov dword [ebp - 0x24], edi
lea ecx, [ebp - 0x42c]
mov dword [ebp - 0x44], 0x4f7
push 1
call fcn.10010bbe
mov dword [ebp - 4], 0xb
xor edx, edx
mov dword [ebp - 0x258], 0xb2c3
inc edx
mov dword [ebp - 0x254], 0xb2c3
mov dword [ebp - 0x250], 0xb2c3
mov dword [ebp - 0x24c], 0xb2c3
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x590], ebx
mov dword [ebp - 0x58c], ebx
mov dword [ebp - 0x588], ebx
mov dword [ebp - 0x584], ebx
mov dword [ebp - 0x38], 0x626a28e2
mov dword [ebp - 0x24], ebx
jmp 0x100380dd
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x64], 0xe3556834
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edx
jl 0x100380cf
mov dword [ebp - 0x24], ebx
jmp 0x100380fa
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x42c]
mov dword [eax + ecx*4], 0xfffffffb
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edx
jl 0x100380e7
mov dword [ebp - 0x3c], 0x2615
cmp dword [ebp - 0x3c], 0x2983
jle 0x10038199
mov edx, ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x20], ebx
mov ecx, ebx
mov dword [ebp - 0x30], 0x8022
mov dword [ebp - 0x28], ecx
mov edi, edx
mov esi, ebx
shl edi, cl
mov ecx, esi
mov eax, edi
shl eax, cl
lea ecx, [ebp - 0x894]
cdq
push edx
push eax
call fcn.1000cefe
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1003814b
mov eax, dword [eax]
push eax
call fcn.1004c59f
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x894]
call fcn.1001113e
inc esi
cmp esi, 0x584f
jl 0x1003812d
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
add ecx, eax
dec dword [ebp - 0x30]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x28], ecx
jne 0x10038127
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 0x53d8
jl 0x1003811b
inc edx
mov dword [ebp - 0x18], edx
cmp edx, 0x3709
jl 0x10038118
mov dword [ebp - 0x24], ebx
jmp 0x100381ab
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x5a4], edx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 2
jl 0x1003819e
cmp dword [ebp - 0x3c], 0x2299
jge 0x100381c5
push 0x1000a5e0
call fcn.1004c59f
pop ecx
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], ebx
jl 0x100382b7