Function at 0x402d40
Capabilities:
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4a20e9
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2ac
push ebx
push ebp
push esi
xor esi, esi
push edi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
mov byte [esp + 0x30], 0
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x2c4], esi
call fcn.00402610
mov ebx, dword [esp + 0x2cc]
xor eax, eax
mov dword [esp + 0x74], eax
push 0x4aa450
push ebx
mov word [esp + 0x80], ax
call fcn.00487980
add esp, 4
push eax
call fcn.00493480
mov edi, eax
add esp, 8
cmp edi, esi
mov dword [esp + 0x18], edi
jne 0x402df0
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], esi
mov byte [esp + 0x30], 0
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x2c], esi
cmp eax, esi
jmp 0x402f1b
push 2
push 0
push edi
call fcn.00493360
add esp, 0xc
push edi
call fcn.00493180
add esp, 4
mov esi, eax
push 0
push 0
push edi
call fcn.00493360
add esp, 0xc
push esi
call fcn.00492900
add esp, 4
mov ebp, eax
mov dword [esp + 0x84], ebp
push edi
push 1
push esi
push ebp
call fcn.00493000
add esp, 0x10
cmp eax, 1
push edi
jne 0x402e52
call fcn.00492f50
add esp, 4
push ebx
push esi
push ebp
call fcn.0041b680
add esp, 0xc
test eax, eax
jne 0x402e83
push edi
call fcn.00492f50
mov eax, dword [esp + 0x28]
xor ecx, ecx
add esp, 4
mov dword [esp + 0x28], ecx
mov byte [esp + 0x30], cl
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x2c], ecx
cmp eax, ecx
jmp 0x402f1b
lea ecx, [esp + 0x24]
push ecx
push ebp
call fcn.00424bd0
mov edx, dword [esp + 0x30]
add esp, 8
xor edi, edi
mov dword [esp + 0x14], eax
test edx, edx
jle 0x402ee3
mov ebp, dword [esp + 0x24]
mov esi, ebp
mov eax, str.datafile
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x402ece
test cl, cl
je 0x402eca
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x402ece
add eax, 2
add esi, 2
test cl, cl
jne 0x402eaa
xor eax, eax
jmp 0x402ed3
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x403bbf
inc edi
add ebp, 0x64
cmp edi, edx
jl 0x402ea3
xor ebx, ebx
xor ebp, ebp
cmp ebx, ebp
jne 0x402f2d
mov ecx, dword [esp + 0x18]
push ecx
call fcn.00492f50
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x28], ebp
mov byte [esp + 0x30], 0
mov dword [esp + 0x64], ebp
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], ebp
mov dword [esp + 0x2c], ebp
cmp eax, ebp
je 0x402f26
push eax
call fcn.00492890
add esp, 4
xor eax, eax
jmp 0x403ba4
mov edx, dword [esp + 0x2cc]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
lea esi, [esp + 0xbc]
sub edi, ecx
mov eax, ecx
mov dword [esp + 0x18], esi
mov esi, edi
mov edi, dword [esp + 0x18]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
dec ecx
js 0x402f85
mov al, byte [esp + ecx + 0xbc]
cmp al, 0x5c
je 0x402f85
cmp al, 0x2f
je 0x402f85
cmp al, 0x3a
je 0x402f85
dec ecx
jns 0x402f6f
mov byte [esp + ecx + 0xbd], 0
mov ecx, dword [esp + 0x20]
lea edi, [esp + 0xbc]
xor eax, eax
lea edx, [ecx + 0x38]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0x14]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x24]
push ecx
push edx
call fcn.00424bd0
add esp, 8
lea ecx, [esp + 0x24]
push ecx
push eax
call fcn.00424bd0
mov dword [esp + 0x1c], eax
add esp, 8
mov esi, str.IMAGE
lea eax, [esp + 0x30]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x403034
test cl, cl
je 0x403030
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x403034
add eax, 2
add esi, 2
test cl, cl
jne 0x40300c
xor eax, eax
jmp 0x403039
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
jne 0x4038c0
push 0x120
call fcn.00492a40
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x2c4], 1
je 0x403067
mov ecx, eax
call fcn.0041e7d0
jmp 0x403069
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [eax + 0xcc], 1
mov edx, dword [esp + 0x28]
xor edi, edi
test edx, edx
mov byte [esp + 0x2c4], 0
jle 0x4030e4
mov ebp, dword [esp + 0x24]
mov esi, ebp
mov eax, str.width
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x4030b8
test cl, cl
je 0x4030b4
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x4030b8
add eax, 2
add esi, 2
test cl, cl
jne 0x403094
xor eax, eax
jmp 0x4030bd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4030cb
inc edi
add ebp, 0x64
cmp edi, edx
jl 0x40308d
jmp 0x4030e4
mov ecx, dword [esp + 0x24]
lea eax, [edi + edi*4]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*4 + 0x32]
push edx
call fcn.00492f40
add esp, 4
jmp 0x4030e6
xor eax, eax
mov ecx, dword [esp + 0x10]
xor edi, edi
mov dword [ecx + 4], eax
mov edx, dword [esp + 0x28]
test edx, edx
jle 0x403152
mov ebp, dword [esp + 0x24]
mov esi, ebp
mov eax, str.height
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x403126
test cl, cl
je 0x403122
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x403126
add eax, 2
add esi, 2
test cl, cl
jne 0x403102
xor eax, eax
jmp 0x40312b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x403139
inc edi
add ebp, 0x64
cmp edi, edx
jl 0x4030fb
jmp 0x403152
lea eax, [edi + edi*4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x24]
lea ecx, [eax + edx*4 + 0x32]
push ecx
call fcn.00492f40
add esp, 4
jmp 0x403154
xor eax, eax
mov edx, dword [esp + 0x10]
xor edi, edi
mov dword [edx + 8], eax
mov edx, dword [esp + 0x28]
test edx, edx
jle 0x4031c0
mov ebp, dword [esp + 0x24]
mov esi, ebp
mov eax, str.pitch
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x403194
test cl, cl
je 0x403190
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x403194
add eax, 2
add esi, 2
test cl, cl
jne 0x403170
xor eax, eax
jmp 0x403199
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4031a7
inc edi
add ebp, 0x64
cmp edi, edx
jl 0x403169
jmp 0x4031c0
mov ecx, dword [esp + 0x24]
lea eax, [edi + edi*4]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*4 + 0x32]
push edx
call fcn.00492f40
add esp, 4
jmp 0x4031c2
xor eax, eax
mov ecx, dword [esp + 0x10]
xor edi, edi
mov dword [ecx + 0x1c], eax
mov edx, dword [esp + 0x28]
test edx, edx
jle 0x40322e
mov ebp, dword [esp + 0x24]
mov esi, ebp
mov eax, str.originalWidth
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x403202
test cl, cl
je 0x4031fe
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x403202
add eax, 2
add esi, 2
test cl, cl
jne 0x4031de
xor eax, eax
jmp 0x403207
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x403215
inc edi
add ebp, 0x64
cmp edi, edx
jl 0x4031d7
jmp 0x40322e
lea eax, [edi + edi*4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x24]
lea ecx, [eax + edx*4 + 0x32]
push ecx
call fcn.00492f40
add esp, 4
jmp 0x403230
xor eax, eax
mov edx, dword [esp + 0x10]
xor edi, edi
mov dword [edx + 0x20], eax
mov edx, dword [esp + 0x28]
test edx, edx
jle 0x40329c
mov ebp, dword [esp + 0x24]
mov esi, ebp
mov eax, str.originalHeight
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x403270
test cl, cl
je 0x40326c
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x403270
add eax, 2
add esi, 2
test cl, cl
jne 0x40324c
xor eax, eax
jmp 0x403275
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x403283
inc edi
add ebp, 0x64
cmp edi, edx
jl 0x403245
jmp 0x40329c
mov ecx, dword [esp + 0x24]
lea eax, [edi + edi*4]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*4 + 0x32]
push edx
call fcn.00492f40
add esp, 4
jmp 0x40329e
xor eax, eax
mov ecx, dword [esp + 0x10]
xor edi, edi
mov dword [ecx + 0x24], eax
mov edx, dword [esp + 0x28]
test edx, edx
jle 0x40330a
mov ebp, dword [esp + 0x24]
mov esi, ebp
mov eax, str.xOffset
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x4032de
test cl, cl
je 0x4032da
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x4032de
add eax, 2
add esi, 2
test cl, cl
jne 0x4032ba
xor eax, eax
jmp 0x4032e3
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4032f1
inc edi
add ebp, 0x64
cmp edi, edx
jl 0x4032b3
jmp 0x40330a
lea eax, [edi + edi*4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x24]
lea ecx, [eax + edx*4 + 0x32]
push ecx
call fcn.00492f40
add esp, 4
jmp 0x40330c
xor eax, eax
mov edx, dword [esp + 0x10]
xor edi, edi
mov dword [edx + 0x28], eax
mov edx, dword [esp + 0x28]
test edx, edx
jle 0x403378
mov ebp, dword [esp + 0x24]
mov esi, ebp
mov eax, str.yOffset
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x40334c
test cl, cl
je 0x403348
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x40334c
add eax, 2
add esi, 2
test cl, cl
jne 0x403328
xor eax, eax
jmp 0x403351
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40335f
inc edi
add ebp, 0x64
cmp edi, edx
jl 0x403321
jmp 0x403378
mov ecx, dword [esp + 0x24]
lea eax, [edi + edi*4]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*4 + 0x32]
push edx
call fcn.00492f40
add esp, 4
jmp 0x40337a
xor eax, eax
mov ecx, dword [esp + 0x10]
xor edi, edi
mov dword [ecx + 0x2c], eax
mov edx, dword [esp + 0x28]
test edx, edx
jle 0x4033e6
mov ebp, dword [esp + 0x24]
mov esi, ebp
mov eax, str.dataSize
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x4033ba
test cl, cl
je 0x4033b6
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x4033ba
add eax, 2
add esi, 2
test cl, cl
jne 0x403396
xor eax, eax
jmp 0x4033bf
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4033cd
inc edi
add ebp, 0x64
cmp edi, edx
jl 0x40338f
jmp 0x4033e6
lea eax, [edi + edi*4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x24]
lea ecx, [eax + edx*4 + 0x32]
push ecx
call fcn.00492f40
add esp, 4
jmp 0x4033e8
xor eax, eax
mov edx, dword [esp + 0x10]
xor edi, edi
mov dword [edx + 0x30], eax
mov edx, dword [esp + 0x28]
test edx, edx
jle 0x403454
mov ebp, dword [esp + 0x24]
mov esi, ebp
mov eax, str.paletteNumber
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x403428
test cl, cl
je 0x403424
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x403428
add eax, 2
add esi, 2
test cl, cl
jne 0x403404
xor eax, eax
jmp 0x40342d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40343b
inc edi
add ebp, 0x64
cmp edi, edx
jl 0x4033fd
jmp 0x403454
mov ecx, dword [esp + 0x24]
lea eax, [edi + edi*4]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*4 + 0x32]
push edx
call fcn.00492f40
add esp, 4
jmp 0x403456
xor eax, eax
mov ecx, dword [esp + 0x10]
xor edi, edi
mov dword [ecx + 0xd4], eax
mov edx, dword [esp + 0x28]
test edx, edx
jle 0x4034cd
mov ebp, dword [esp + 0x24]
mov esi, ebp
mov eax, str.blueMask
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x403499
test cl, cl
je 0x403495
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x403499
add eax, 2
add esi, 2
test cl, cl
jne 0x403475
xor eax, eax
jmp 0x40349e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4034ac
inc edi
add ebp, 0x64
cmp edi, edx
jl 0x40346e
jmp 0x4034cd
lea eax, [edi + edi*4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x24]
lea ecx, [eax + edx*4 + 0x32]
push ecx
call fcn.00492f40
mov edx, dword [esp + 0x2c]
add esp, 4
mov dword [esp + 0x1c], eax
jmp 0x4034d5
mov dword [esp + 0x1c], 0
xor edi, edi
test edx, edx
jle 0x40353e
mov ebp, dword [esp + 0x24]
mov esi, ebp
mov eax, str.greenMask
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x40350a
test cl, cl
je 0x403506
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x40350a
add eax, 2
add esi, 2
test cl, cl
jne 0x4034e6
xor eax, eax
jmp 0x40350f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40351d
inc edi
add ebp, 0x64
cmp edi, edx
jl 0x4034df
jmp 0x40353e
lea eax, [edi + edi*4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x24]
lea ecx, [eax + edx*4 + 0x32]
push ecx
call fcn.00492f40
mov edx, dword [esp + 0x2c]
add esp, 4
mov dword [esp + 0x7c], eax
jmp 0x403546
mov dword [esp + 0x7c], 0
xor edi, edi
test edx, edx
jle 0x4035af
mov ebp, dword [esp + 0x24]
mov esi, ebp
mov eax, str.redMask
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x40357b
test cl, cl
je 0x403577
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x40357b
add eax, 2
add esi, 2
test cl, cl
jne 0x403557
xor eax, eax
jmp 0x403580
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40358e
inc edi
add ebp, 0x64
cmp edi, edx
jl 0x403550
jmp 0x4035af
lea eax, [edi + edi*4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x24]
lea ecx, [eax + edx*4 + 0x32]
push ecx
call fcn.00492f40
mov edx, dword [esp + 0x2c]
add esp, 4
mov dword [esp + 0x18], eax
jmp 0x4035b7
mov dword [esp + 0x18], 0
xor edi, edi
test edx, edx
jle 0x40361a
mov ebp, dword [esp + 0x24]
mov esi, ebp
mov eax, 0x4aa3b4
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x4035ec
test cl, cl
je 0x4035e8
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x4035ec
add eax, 2
add esi, 2
test cl, cl
jne 0x4035c8
xor eax, eax
jmp 0x4035f1
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4035ff
inc edi
add ebp, 0x64
cmp edi, edx
jl 0x4035c1
jmp 0x40361a
lea eax, [edi + edi*4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x24]
lea ecx, [eax + edx*4 + 0x32]
push ecx
call fcn.00492f40
add esp, 4
mov esi, eax
jmp 0x40361c
xor esi, esi
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x18]
add ecx, 0x3c
cmp esi, 8
jne 0x403643
mov edx, 0xff0000
mov eax, 0xff00
mov ebx, 0xff
xor edi, edi
mov dword [ecx], esi
test dl, 1
mov dword [ecx + 4], edx
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], edi
jne 0x40366c
cmp edx, edi
je 0x403667
mov esi, dword [ecx + 0xc]
shr edx, 1
inc esi
test dl, 1
mov dword [ecx + 0xc], esi
je 0x403655
test dl, 1
je 0x40367a
mov esi, dword [ecx + 8]
shr edx, 1
inc esi
test dl, 1
mov dword [ecx + 8], esi
jne 0x40366c
mov esi, dword [ecx + 8]
mov edx, 8
sub edx, esi
mov dword [ecx + 0x14], eax
test al, 1
mov dword [ecx + 0x10], edx
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x1c], edi
jne 0x4036a9
cmp eax, edi
je 0x4036a5
mov ebp, dword [ecx + 0x1c]
shr eax, 1
inc ebp
test al, 1
mov dword [ecx + 0x1c], ebp
je 0x403694
test al, 1
je 0x4036b6
mov ebp, dword [ecx + 0x18]
shr eax, 1
inc ebp
test al, 1
mov dword [ecx + 0x18], ebp
jne 0x4036a9
mov edx, dword [ecx + 0x18]
mov eax, 8
sub eax, edx
mov dword [ecx + 0x24], ebx
test bl, 1
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x28], edi
mov dword [ecx + 0x2c], edi
jne 0x4036e8
cmp ebx, edi
je 0x4036e3
mov esi, dword [ecx + 0x2c]
shr ebx, 1
inc esi
test bl, 1
mov dword [ecx + 0x2c], esi
je 0x4036d1
test bl, 1
je 0x4036f6
mov esi, dword [ecx + 0x28]
shr ebx, 1
inc esi
test bl, 1
mov dword [ecx + 0x28], esi
jne 0x4036e8
mov esi, dword [ecx + 0x28]
mov edx, 8
sub edx, esi
mov dword [ecx + 0x30], edx
mov edx, dword [esp + 0x28]
cmp edx, edi
jle 0x40375d
mov ebp, dword [esp + 0x24]
mov esi, ebp
mov eax, str.name
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x40373a
test cl, cl
je 0x403736
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x40373a
add eax, 2
add esi, 2
test cl, cl
jne 0x403716
xor eax, eax
jmp 0x40373f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40374f
inc edi
add ebp, 0x64
cmp edi, edx
jl 0x40370f
xor edi, edi
jmp 0x40375d
mov ecx, dword [esp + 0x24]
lea eax, [edi + edi*4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*4 + 0x32]
mov edx, dword [esp + 0x10]
or ecx, 0xffffffff
xor eax, eax
add edx, 0x94
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ebp, dword [esp + 0x10]
or ecx, 0xffffffff
lea edx, [ebp + 0x94]
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 5
jbe 0x4037ff
mov ecx, dword [edx]
mov dl, byte [edx + 4]
mov dword [esp + 0x74], ecx
mov byte [esp + 0x78], dl
mov esi, str.mask_
lea eax, [esp + 0x74]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x4037dd
test cl, cl
je 0x4037d9
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x4037dd
add eax, 2
add esi, 2
test cl, cl
jne 0x4037b5
xor eax, eax
jmp 0x4037e2
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4037ff
mov eax, 1
mov dword [ebp + 0xd8], eax
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0xdc], eax
mov ebp, dword [esp + 0x10]
mov edx, dword [ebp + 0x30]
mov dword [ebp + 0xe4], edx
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0xe8], ecx
mov eax, dword [esp + 0x10]
mov ecx, 0xd
lea esi, [eax + 0x3c]
lea edi, [eax + 0xec]
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0x10]
xor edi, edi
mov dword [edx + 0xc], edi
mov eax, dword [esp + 0x10]
mov dword [eax + 0x10], edi
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
dec ecx
mov dword [eax + 0x14], ecx
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 8]
dec edx
mov dword [eax + 0x18], edx
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x10]
lea ecx, [eax + 4]
push edx
mov eax, dword [ecx + 4]
push eax
lea eax, [esp + 0x88]
push eax
call fcn.00404a20
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x24]
push ecx
push edx
call fcn.00424bd0
mov dword [esp + 0x1c], eax
add esp, 8
mov esi, str.IMAGE
lea eax, [esp + 0x30]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x4038b3
test cl, cl
je 0x4038af
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x4038b3
add eax, 2
add esi, 2
test cl, cl
jne 0x40388b
xor eax, eax
jmp 0x4038b8
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
je 0x403041
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x24]
push eax
push ecx
call fcn.00424bd0
add esp, 8
mov edi, eax
mov esi, str.PALETTELIST
lea ecx, [esp + 0x30]
mov al, byte [ecx]
mov bl, byte [esi]
mov dl, al
cmp al, bl
jne 0x403905
test dl, dl
je 0x403901
mov al, byte [ecx + 1]
mov bl, byte [esi + 1]
mov dl, al
cmp al, bl
jne 0x403905
add ecx, 2
add esi, 2
test dl, dl
jne 0x4038dd
xor ecx, ecx
jmp 0x40390a
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x403b14
lea ecx, [esp + 0x24]
push ecx
push edi
call fcn.00424bd0
mov dword [esp + 0x1c], eax
add esp, 8
mov esi, str.PALETTE
lea eax, [esp + 0x30]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x403955
test cl, cl
je 0x403951
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x403955
add eax, 2
add esi, 2
test cl, cl
jne 0x40392d
xor eax, eax
jmp 0x40395a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x403b14
xor edi, edi
push 0x400
mov dword [esp + 0x20], edi
call fcn.00492900
mov edx, dword [esp + 0x2c]
add esp, 4
cmp edx, edi
mov dword [esp + 0x10], eax
jle 0x4039de
mov ebp, dword [esp + 0x24]
mov esi, ebp
mov eax, str.colorsUsed
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x4039b0
test cl, cl
je 0x4039ac
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x4039b0
add eax, 2
add esi, 2
test cl, cl
jne 0x40398c
xor eax, eax
jmp 0x4039b5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4039c3
inc edi
add ebp, 0x64
cmp edi, edx
jl 0x403985
jmp 0x4039de
mov ecx, dword [esp + 0x24]
lea eax, [edi + edi*4]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*4 + 0x32]
push edx
call fcn.00492f40
add esp, 4
mov ebx, eax
jmp 0x4039e0
xor ebx, ebx
mov edi, dword [esp + 0x64]
xor esi, esi
test ebx, ebx
jle 0x403a95
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x1c]
push eax
lea edx, [esp + 0x8c]
push ecx
push edx
push edi
call fcn.004249e0
add esp, 0x10
mov edi, eax
lea eax, [esp + 0x88]
push eax
call fcn.00492f40
mov ecx, dword [esp + 0x14]
add esp, 4
lea edx, [esp + 0x1c]
mov byte [ecx + esi*4], al
mov eax, dword [esp + 0x68]
push edx
lea ecx, [esp + 0x8c]
push eax
push ecx
push edi
call fcn.004249e0
add esp, 0x10
lea edx, [esp + 0x88]
mov edi, eax
push edx
call fcn.00492f40
mov ecx, dword [esp + 0x14]
add esp, 4
lea edx, [esp + 0x1c]
mov byte [ecx + esi*4 + 1], al
mov eax, dword [esp + 0x68]
push edx
lea ecx, [esp + 0x8c]
push eax
push ecx
push edi
call fcn.004249e0
add esp, 0x10
lea edx, [esp + 0x88]
mov edi, eax
push edx
call fcn.00492f40
mov ecx, dword [esp + 0x14]
add esp, 4
mov byte [ecx + esi*4 + 2], al
inc esi
cmp esi, ebx
jl 0x4039ee
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x18]
lea ecx, [edx + 0x14]
lea edx, [esp + 0x10]
push edx
push eax
lea eax, [esp + 0x88]
push eax
call fcn.00404a20
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x24]
push ecx
push edx
call fcn.00424bd0
add esp, 8
lea ecx, [esp + 0x24]
push ecx
push eax
call fcn.00424bd0
mov dword [esp + 0x1c], eax
add esp, 8
mov esi, str.PALETTE
lea eax, [esp + 0x30]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x403b07
test cl, cl
je 0x403b03
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x403b07
add eax, 2
add esi, 2
test cl, cl
jne 0x403adf
xor eax, eax
jmp 0x403b0c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x403962
mov esi, dword [esp + 0x20]
mov eax, dword [esi + 0xc]
shl eax, 2
push eax
call fcn.00492900
mov dword [esi + 0x10], eax
mov ecx, dword [esi + 8]
add esp, 4
xor edx, edx
mov eax, dword [ecx]
cmp eax, ecx
sete dl
neg dl
sbb edx, edx
inc edx
test dl, dl
je 0x403b62
xor ecx, ecx
mov edx, dword [esi + 0x10]
mov edi, dword [eax + 8]
mov dword [ecx + edx], edi
mov eax, dword [eax]
mov edi, dword [esi + 8]
add ecx, 4
xor edx, edx
cmp eax, edi
sete dl
neg dl
sbb edx, edx
inc edx
test dl, dl
jne 0x403b41
mov eax, dword [esp + 0x84]
push eax
call fcn.00492890
add esp, 4
lea ecx, [esp + 0x24]
mov dword [esp + 0x2c4], 0xffffffff
call fcn.00404a80
mov eax, dword [esp + 0x24]
mov dword [esp + 0x2c], 0
test eax, eax
je 0x403b9f
push eax
call fcn.00492890
add esp, 4
mov eax, 1
mov ecx, dword [esp + 0x2bc]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x2b8
ret 4
lea eax, [edi + edi*4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x24]
lea ebx, [eax + edx*4 + 0x32]
jmp 0x402ee5