Function at 0x42d680
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
lea ebp, [esp - 0x58]
sub esp, 0x94
push ebx
mov ebx, dword [ebp + 0x78]
push esi
mov esi, ecx
mov eax, dword [esi + 8]
add eax, 0x28
test ebx, ebx
push edi
mov dword [ebp + 0x54], eax
jle case.default.0x42d8f9
cmp dword [esi + 0x64], 0x11
jne 0x42d6da
mov ecx, dword [ebp + 0x7c]
mov edx, dword [ebp + 0x74]
mov eax, dword [ebp + 0x70]
push ecx
mov ecx, dword [ebp + 0x6c]
push ebx
push edx
mov edx, dword [ebp + 0x68]
push eax
mov eax, dword [ebp + 0x64]
push ecx
mov ecx, dword [ebp + 0x60]
push edx
push eax
push ecx
mov ecx, esi
call fcn.004250b0
pop edi
pop esi
pop ebx
add ebp, 0x58
mov esp, ebp
pop ebp
ret 0x20
cmp ebx, 0x10
jl 0x42d70e
mov edx, dword [ebp + 0x7c]
mov eax, dword [ebp + 0x74]
mov ecx, dword [ebp + 0x70]
push edx
mov edx, dword [ebp + 0x6c]
push eax
mov eax, dword [ebp + 0x68]
push ecx
mov ecx, dword [ebp + 0x64]
push edx
mov edx, dword [ebp + 0x60]
push eax
push ecx
push edx
mov ecx, esi
call fcn.004292d0
pop edi
pop esi
pop ebx
add ebp, 0x58
mov esp, ebp
pop ebp
ret 0x20
mov edi, dword [esi + 0x68]
test edi, edi
je 0x42d76a
test byte [esi + 0x5c], 4
jne 0x42d76a
mov eax, dword [ebp + 0x74]
mov ecx, dword [ebp + 0x70]
mov edx, dword [ebp + 0x6c]
push ebx
push eax
push ecx
push edx
push 0
push 0
mov ecx, esi
call fcn.004200d0
mov ebx, dword [ebp + 0x68]
mov ecx, ebx
sub ecx, eax
push 0
mov dword [ebp + 0x70], ecx
push 0
mov ecx, edi
call fcn.004200d0
mov ecx, dword [ebp + 0x70]
add ecx, eax
mov eax, dword [ebp + 0x64]
push ecx
mov ecx, dword [ebp + 0x60]
push ebx
push eax
push ecx
mov ecx, esi
call fcn.0042c770
pop edi
pop esi
pop ebx
add ebp, 0x58
mov esp, ebp
pop ebp
ret 0x20
call dword [sym.imp.GDI32.dll_GdiFlush]
test byte [esi + 0x60], 1
je 0x42d8ed
mov edx, dword [ebp + 0x64]
mov eax, 0x100010
xor ecx, ecx
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x70]
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], ecx
lea ecx, [edx + eax*4]
mov edx, dword [ebp + 0x6c]
add edx, eax
mov dword [ebp - 0x34], 0x10001
mov dword [ebp - 0x30], 0x100001
mov dword [ebp - 0x2c], 0x20002
mov dword [ebp - 0x28], 0x200002
mov dword [ebp - 0x24], 0x30003
mov dword [ebp - 0x20], 0x300003
mov dword [ebp - 0x1c], 0x40004
mov dword [ebp - 0x18], 0x400004
mov dword [ebp - 0x14], 0x50005
mov dword [ebp - 0x10], 0x500005
mov dword [ebp - 0xc], 0x60006
mov dword [ebp - 8], 0x600006
mov dword [ebp - 4], 0x70007
mov dword [ebp], 0x700007
mov dword [ebp + 4], 0x80008
mov dword [ebp + 8], 0x800008
mov dword [ebp + 0xc], 0x90009
mov dword [ebp + 0x10], 0x900009
mov dword [ebp + 0x14], 0xa000a
mov dword [ebp + 0x18], 0xa0000a
mov dword [ebp + 0x1c], 0xb000b
mov dword [ebp + 0x20], 0xb0000b
mov dword [ebp + 0x24], 0xc000c
mov dword [ebp + 0x28], 0xc0000c
mov dword [ebp + 0x2c], 0xd000d
mov dword [ebp + 0x30], 0xd0000d
mov dword [ebp + 0x34], 0xe000e
mov dword [ebp + 0x38], 0xe0000e
mov dword [ebp + 0x3c], 0xf000f
mov dword [ebp + 0x40], 0xf0000f
mov dword [ebp + 0x48], 0x1000010
mov dword [ebp + 0x64], ecx
mov dword [ebp + 0x6c], edx
pushfd
cld
pushal
mov eax, dword [ebp + 0x78]
pxor mm5, mm5
movq mm6, qword [ebp + eax*8 - 0x3c]
movq mm7, qword [ebp + 0x4c]
psubw mm7, mm6
mov edx, dword [ebp + 0x74]
mov edi, dword [ebp + 0x60]
mov esi, dword [ebp + 0x68]
mov ebx, dword [ebp + 0x54]
mov ecx, dword [ebp + 0x70]
xor eax, eax
mov al, byte [esi]
inc esi
cmp eax, dword [ebp + 0x7c]
je 0x42d8ce
movd mm1, dword [edi]
movd mm0, dword [ebx + eax*4]
punpcklbw mm1, mm5
punpcklbw mm0, mm5
pmullw mm1, mm7
pmullw mm0, mm6
paddusw mm1, mm0
psrlw mm1, 4
packuswb mm1, mm5
movd dword [edi], mm1
add edi, 4
dec ecx
jne 0x42d8a4
sub edi, dword [ebp + 0x64]
sub esi, dword [ebp + 0x6c]
dec edx
jne 0x42d8a1
emms
popal
popfd
pop edi
pop esi
pop ebx
add ebp, 0x58
mov esp, ebp
pop ebp
ret 0x20
lea eax, [ebx - 1]
cmp eax, 0xe
ja case.default.0x42d8f9
jmp dword [eax*4 + 0x42e208]
pushfd
cld
pushal
mov ecx, dword [ebp + 0x74]
mov ebx, dword [ebp + 0x54]
push ecx
mov edi, dword [ebp + 0x60]
mov esi, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x70]
xor edx, edx
mov dl, byte [esi]
cmp edx, dword [ebp + 0x7c]
je 0x42d96c
lea eax, [ebx + edx*4]
mov edx, dword [edi]
and edx, 0xff00ff
mov ebx, edx
shl edx, 4
sub edx, ebx
mov ebx, dword [eax]
and ebx, 0xff00ff
add edx, ebx
mov dword [ebp + 0x78], edx
mov ebx, dword [edi]
and ebx, 0xff00
mov edx, ebx
shl ebx, 4
sub ebx, edx
mov edx, dword [eax]
and edx, 0xff00
add ebx, edx
mov eax, dword [ebp + 0x78]
and ebx, 0xff0000
and eax, 0xff00ff00
add eax, ebx
shr eax, 4
mov dword [edi], eax
mov ebx, dword [ebp + 0x54]
inc esi
add edi, 4
dec ecx
jne 0x42d913
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x68]
sub ecx, dword [ebp + 0x64]
sub eax, dword [ebp + 0x6c]
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x68], eax
pop ecx
dec ecx
jne 0x42d909
popal
popfd
pop edi
pop esi
pop ebx
add ebp, 0x58
mov esp, ebp
pop ebp
ret 0x20
pushfd
cld
pushal
mov ecx, dword [ebp + 0x74]
mov ebx, dword [ebp + 0x54]
push ecx
mov edi, dword [ebp + 0x60]
mov esi, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x70]
xor edx, edx
mov dl, byte [esi]
cmp edx, dword [ebp + 0x7c]
je 0x42da07
lea eax, [ebx + edx*4]
mov edx, dword [edi]
and edx, 0xff00ff
mov ebx, edx
shl edx, 3
sub edx, ebx
mov ebx, dword [eax]
and ebx, 0xff00ff
add edx, ebx
add edx, edx
mov dword [ebp + 0x78], edx
mov ebx, dword [edi]
and ebx, 0xff00
mov edx, ebx
shl ebx, 3
sub ebx, edx
mov edx, dword [eax]
and edx, 0xff00
add ebx, edx
add ebx, ebx
mov eax, dword [ebp + 0x78]
and ebx, 0xff0000
and eax, 0xff00ff00
add eax, ebx
shr eax, 4
mov dword [edi], eax
mov ebx, dword [ebp + 0x54]
inc esi
add edi, 4
dec ecx
jne 0x42d9aa
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x68]
sub ecx, dword [ebp + 0x64]
sub eax, dword [ebp + 0x6c]
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x68], eax
pop ecx
dec ecx
jne 0x42d9a0
popal
popfd
pop edi
pop esi
pop ebx
add ebp, 0x58
mov esp, ebp
pop ebp
ret 0x20
pushfd
cld
pushal
mov ecx, dword [ebp + 0x74]
mov ebx, dword [ebp + 0x54]
push ecx
mov edi, dword [ebp + 0x60]
mov esi, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x70]
xor edx, edx
mov dl, byte [esi]
cmp edx, dword [ebp + 0x7c]
je 0x42daaa
lea eax, [ebx + edx*4]
mov edx, dword [edi]
and edx, 0xff00ff
mov ebx, edx
lea edx, [edx + edx*4]
lea edx, [edx + ebx*8]
mov ebx, dword [eax]
and ebx, 0xff00ff
lea ebx, [ebx + ebx*2]
add edx, ebx
mov dword [ebp + 0x78], edx
mov edx, dword [edi]
and edx, 0xff00
mov ebx, edx
lea ebx, [ebx + ebx*4]
lea edx, [ebx + edx*8]
mov ebx, dword [eax]
and ebx, 0xff00
lea eax, [ebx + ebx*2]
add edx, eax
mov eax, dword [ebp + 0x78]
and edx, 0xff0000
and eax, 0xff00ff00
add eax, edx
shr eax, 4
mov dword [edi], eax
mov ebx, dword [ebp + 0x54]
inc esi
add edi, 4
dec ecx
jne 0x42da49
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x68]
sub ecx, dword [ebp + 0x64]
sub eax, dword [ebp + 0x6c]
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x68], eax
pop ecx
dec ecx
jne 0x42da3f
popal
popfd
pop edi
pop esi
pop ebx
add ebp, 0x58
mov esp, ebp
pop ebp
ret 0x20
pushfd
cld
pushal
mov ecx, dword [ebp + 0x74]
mov ebx, dword [ebp + 0x54]
push ecx
mov edi, dword [ebp + 0x60]
mov esi, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x70]
xor edx, edx
mov dl, byte [esi]
cmp edx, dword [ebp + 0x7c]
je 0x42db3c
lea eax, [ebx + edx*4]
mov edx, dword [edi]
and edx, 0xff00ff
lea edx, [edx + edx*2]
mov ebx, dword [eax]
and ebx, 0xff00ff
add edx, ebx
shl edx, 2
mov ebx, dword [edi]
and ebx, 0xff00
lea ebx, [ebx + ebx*2]
mov eax, dword [eax]
and eax, 0xff00
add eax, ebx
shl eax, 2
and eax, 0xff0000
and edx, 0xff00ff00
add eax, edx
shr eax, 4
mov dword [edi], eax
mov ebx, dword [ebp + 0x54]
inc esi
add edi, 4
dec ecx
jne 0x42daec
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x68]
sub ecx, dword [ebp + 0x64]
sub eax, dword [ebp + 0x6c]
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x68], eax
pop ecx
dec ecx
jne 0x42dae2
popal
popfd
pop edi
pop esi
pop ebx
add ebp, 0x58
mov esp, ebp
pop ebp
ret 0x20
pushfd
cld
pushal
mov ecx, dword [ebp + 0x74]
mov ebx, dword [ebp + 0x54]
push ecx
mov edi, dword [ebp + 0x60]
mov esi, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x70]
xor edx, edx
mov dl, byte [esi]
cmp edx, dword [ebp + 0x7c]
je 0x42dbdb
lea eax, [ebx + edx*4]
mov edx, dword [edi]
and edx, 0xff00ff
mov ebx, edx
lea edx, [edx + edx*2]
lea ebx, [edx + ebx*8]
mov edx, dword [eax]
and edx, 0xff00ff
lea edx, [edx + edx*4]
add edx, ebx
mov ebx, dword [edi]
mov dword [ebp + 0x78], edx
and ebx, 0xff00
mov edx, ebx
lea ebx, [ebx + ebx*2]
lea edx, [ebx + edx*8]
mov ebx, dword [eax]
and ebx, 0xff00
lea ebx, [ebx + ebx*4]
add edx, ebx
mov eax, dword [ebp + 0x78]
and edx, 0xff0000
and eax, 0xff00ff00
add eax, edx
shr eax, 4
mov dword [edi], eax
mov ebx, dword [ebp + 0x54]
inc esi
add edi, 4
dec ecx
jne 0x42db7a
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x68]
sub ecx, dword [ebp + 0x64]
sub eax, dword [ebp + 0x6c]
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x68], eax
pop ecx
dec ecx
jne 0x42db70
popal
popfd
pop edi
pop esi
pop ebx
add ebp, 0x58
mov esp, ebp
pop ebp
ret 0x20
pushfd
cld
pushal
mov ecx, dword [ebp + 0x74]
mov ebx, dword [ebp + 0x54]
push ecx
mov edi, dword [ebp + 0x60]
mov esi, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x70]
xor edx, edx
mov dl, byte [esi]
cmp edx, dword [ebp + 0x7c]
je 0x42dc71
lea eax, [ebx + edx*4]
mov edx, dword [edi]
and edx, 0xff00ff
lea edx, [edx + edx*4]
mov ebx, dword [eax]
and ebx, 0xff00ff
lea ebx, [ebx + ebx*2]
add edx, ebx
add edx, edx
mov ebx, dword [edi]
and ebx, 0xff00
lea ebx, [ebx + ebx*4]
mov eax, dword [eax]
and eax, 0xff00
lea eax, [eax + eax*2]
add eax, ebx
add eax, eax
and eax, 0xff0000
and edx, 0xff00ff00
add eax, edx
shr eax, 4
mov dword [edi], eax
mov ebx, dword [ebp + 0x54]
inc esi
add edi, 4
dec ecx
jne 0x42dc1d
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x68]
sub ecx, dword [ebp + 0x64]
sub eax, dword [ebp + 0x6c]
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x68], eax
pop ecx
dec ecx
jne 0x42dc13
popal
popfd
pop edi
pop esi
pop ebx
add ebp, 0x58
mov esp, ebp
pop ebp
ret 0x20
pushfd
cld
pushal
mov ecx, dword [ebp + 0x74]
mov ebx, dword [ebp + 0x54]
push ecx
mov edi, dword [ebp + 0x60]
mov esi, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x70]
xor edx, edx
mov dl, byte [esi]
cmp edx, dword [ebp + 0x7c]
je 0x42dd0f
lea eax, [ebx + edx*4]
mov ebx, dword [eax]
and ebx, 0xff00ff
mov edx, ebx
lea ebx, [ebx*8]
sub ebx, edx
mov edx, dword [edi]
and edx, 0xff00ff
mov eax, dword [eax]
lea edx, [edx + edx*8]
and eax, 0xff00
add edx, ebx
mov ebx, eax
lea eax, [eax*8]
sub eax, ebx
mov ebx, dword [edi]
and ebx, 0xff00
lea ebx, [ebx + ebx*8]
add eax, ebx
and edx, 0xff00ff00
and eax, 0xff0000
add eax, edx
shr eax, 4
mov dword [edi], eax
mov ebx, dword [ebp + 0x54]
inc esi
add edi, 4
dec ecx
jne 0x42dcaf
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x68]
sub ecx, dword [ebp + 0x64]
sub eax, dword [ebp + 0x6c]
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x68], eax
pop ecx
dec ecx
jne 0x42dca5
popal
popfd
pop edi
pop esi
pop ebx
add ebp, 0x58
mov esp, ebp
pop ebp
ret 0x20
pushfd
cld
pushal
mov ecx, dword [ebp + 0x74]
mov ebx, dword [ebp + 0x54]
push ecx
mov edi, dword [ebp + 0x60]
mov esi, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x70]
xor edx, edx
mov dl, byte [esi]
cmp edx, dword [ebp + 0x7c]
je 0x42dda3
lea eax, [ebx + edx*4]
mov edx, dword [edi]
mov ebx, dword [eax]
and edx, 0xff00ff
and ebx, 0xff00ff
add edx, ebx
lea edx, [edx*8]
mov ebx, dword [edi]
mov eax, dword [eax]
and ebx, 0xff00
and eax, 0xff00
add eax, ebx
lea eax, [eax*8]
and edx, 0xff00ff00
and eax, 0xff0000
add eax, edx
shr eax, 4
mov dword [edi], eax
mov ebx, dword [ebp + 0x54]
inc esi
add edi, 4
dec ecx
jne 0x42dd51
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x68]
sub ecx, dword [ebp + 0x64]
sub eax, dword [ebp + 0x6c]
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x68], eax
pop ecx
dec ecx
jne 0x42dd47
popal
popfd
pop edi
pop esi
pop ebx
add ebp, 0x58
mov esp, ebp
pop ebp
ret 0x20
pushfd
cld
pushal
mov ecx, dword [ebp + 0x74]
mov ebx, dword [ebp + 0x54]
push ecx
mov edi, dword [ebp + 0x60]
mov esi, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x70]
xor edx, edx
mov dl, byte [esi]
cmp edx, dword [ebp + 0x7c]
je 0x42de47
lea eax, [ebx + edx*4]
mov edx, dword [edi]
and edx, 0xff00ff
mov ebx, edx
lea edx, [edx*8]
sub edx, ebx
mov ebx, dword [eax]
and ebx, 0xff00ff
lea ebx, [ebx + ebx*8]
add edx, ebx
mov dword [ebp + 0x78], edx
mov ebx, dword [edi]
and ebx, 0xff00
mov edx, ebx
lea ebx, [ebx*8]
sub ebx, edx
mov eax, dword [eax]
and eax, 0xff00
lea eax, [eax + eax*8]
add eax, ebx
mov edx, dword [ebp + 0x78]
and eax, 0xff0000
and edx, 0xff00ff00
add eax, edx
shr eax, 4
mov dword [edi], eax
mov ebx, dword [ebp + 0x54]
inc esi
add edi, 4
dec ecx
jne 0x42dde1
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x68]
sub ecx, dword [ebp + 0x64]
sub eax, dword [ebp + 0x6c]
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x68], eax
pop ecx
dec ecx
jne 0x42ddd7
popal
popfd
pop edi
pop esi
pop ebx
add ebp, 0x58
mov esp, ebp
pop ebp
ret 0x20
pushfd
cld
pushal
mov ecx, dword [ebp + 0x74]
mov ebx, dword [ebp + 0x54]
push ecx
mov edi, dword [ebp + 0x60]
mov esi, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x70]
xor edx, edx
mov dl, byte [esi]
cmp edx, dword [ebp + 0x7c]
je 0x42dedd
lea eax, [ebx + edx*4]
mov edx, dword [edi]
and edx, 0xff00ff
lea edx, [edx + edx*2]
mov ebx, dword [eax]
and ebx, 0xff00ff
lea ebx, [ebx + ebx*4]
add edx, ebx
add edx, edx
mov ebx, dword [edi]
and ebx, 0xff00
lea ebx, [ebx + ebx*2]
mov eax, dword [eax]
and eax, 0xff00
lea eax, [eax + eax*4]
add eax, ebx
add eax, eax
and eax, 0xff0000
and edx, 0xff00ff00
add eax, edx
shr eax, 4
mov dword [edi], eax
mov ebx, dword [ebp + 0x54]
inc esi
add edi, 4
dec ecx
jne 0x42de89
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x68]
sub ecx, dword [ebp + 0x64]
sub eax, dword [ebp + 0x6c]
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x68], eax
pop ecx
dec ecx
jne 0x42de7f
popal
popfd
pop edi
pop esi
pop ebx
add ebp, 0x58
mov esp, ebp
pop ebp
ret 0x20
pushfd
cld
pushal
mov ecx, dword [ebp + 0x74]
mov ebx, dword [ebp + 0x54]
push ecx
mov edi, dword [ebp + 0x60]
mov esi, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x70]
xor edx, edx
mov dl, byte [esi]
cmp edx, dword [ebp + 0x7c]
je 0x42df75
lea eax, [ebx + edx*4]
mov edx, dword [eax]
and edx, 0xff00ff
mov ebx, edx
lea edx, [edx + edx*2]
lea ebx, [edx + ebx*8]
mov edx, dword [edi]
and edx, 0xff00ff
lea edx, [edx + edx*4]
add edx, ebx
mov eax, dword [eax]
and eax, 0xff00
mov ebx, eax
lea ebx, [ebx + ebx*2]
lea eax, [ebx + eax*8]
mov ebx, dword [edi]
and ebx, 0xff00
lea ebx, [ebx + ebx*4]
add eax, ebx
and edx, 0xff00ff00
and eax, 0xff0000
add eax, edx
shr eax, 4
mov dword [edi], eax
mov ebx, dword [ebp + 0x54]
inc esi
add edi, 4
dec ecx
jne 0x42df1b
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x68]
sub ecx, dword [ebp + 0x64]
sub eax, dword [ebp + 0x6c]
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x68], eax
pop ecx
dec ecx
jne 0x42df11
popal
popfd
pop edi
pop esi
pop ebx
add ebp, 0x58
mov esp, ebp
pop ebp
ret 0x20
pushfd
cld
pushal
mov ecx, dword [ebp + 0x74]
mov ebx, dword [ebp + 0x54]
push ecx
mov edi, dword [ebp + 0x60]
mov esi, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x70]
xor edx, edx
mov dl, byte [esi]
cmp edx, dword [ebp + 0x7c]
je 0x42e00f
lea eax, [ebx + edx*4]
mov edx, dword [edi]
mov ebx, dword [eax]
and ebx, 0xff00ff
and edx, 0xff00ff
lea ebx, [ebx + ebx*2]
add edx, ebx
lea edx, [edx*4]
mov eax, dword [eax]
mov ebx, dword [edi]
and eax, 0xff00
and ebx, 0xff00
lea eax, [eax + eax*2]
add eax, ebx
lea eax, [eax*4]
and edx, 0xff00ff00
and eax, 0xff0000
add eax, edx
shr eax, 4
mov dword [edi], eax
mov ebx, dword [ebp + 0x54]
inc esi
add edi, 4
dec ecx
jne 0x42dfb7
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x68]
sub ecx, dword [ebp + 0x64]
sub eax, dword [ebp + 0x6c]
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x68], eax
pop ecx
dec ecx
jne 0x42dfad
popal
popfd
pop edi
pop esi
pop ebx
add ebp, 0x58
mov esp, ebp
pop ebp
ret 0x20
pushfd
cld
pushal
mov ecx, dword [ebp + 0x74]
mov ebx, dword [ebp + 0x54]
push ecx
mov edi, dword [ebp + 0x60]
mov esi, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x70]
xor edx, edx
mov dl, byte [esi]
cmp edx, dword [ebp + 0x7c]
je 0x42e0a7
lea eax, [ebx + edx*4]
mov edx, dword [eax]
and edx, 0xff00ff
mov ebx, edx
lea edx, [edx + edx*4]
lea edx, [edx + ebx*8]
mov ebx, dword [edi]
and ebx, 0xff00ff
mov eax, dword [eax]
lea ebx, [ebx + ebx*2]
and eax, 0xff00
add edx, ebx
mov ebx, eax
lea ebx, [ebx + ebx*4]
lea eax, [ebx + eax*8]
mov ebx, dword [edi]
and ebx, 0xff00
lea ebx, [ebx + ebx*2]
add eax, ebx
and edx, 0xff00ff00
and eax, 0xff0000
add eax, edx
shr eax, 4
mov dword [edi], eax
mov ebx, dword [ebp + 0x54]
inc esi
add edi, 4
dec ecx
jne 0x42e04d
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x68]
sub ecx, dword [ebp + 0x64]
sub eax, dword [ebp + 0x6c]
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x68], eax
pop ecx
dec ecx
jne 0x42e043
popal
popfd
pop edi
pop esi
pop ebx
add ebp, 0x58
mov esp, ebp
pop ebp
ret 0x20
pushfd
cld
pushal
mov ecx, dword [ebp + 0x74]
mov ebx, dword [ebp + 0x54]
push ecx
mov edi, dword [ebp + 0x60]
mov esi, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x70]
xor edx, edx
mov dl, byte [esi]
cmp edx, dword [ebp + 0x7c]
je 0x42e147
lea eax, [ebx + edx*4]
mov edx, dword [eax]
and edx, 0xff00ff
mov ebx, edx
lea edx, [edx*8]
sub edx, ebx
mov ebx, dword [edi]
and ebx, 0xff00ff
add edx, ebx
add edx, edx
mov eax, dword [eax]
and eax, 0xff00
mov ebx, eax
lea eax, [eax*8]
sub eax, ebx
mov ebx, dword [edi]
and ebx, 0xff00
add eax, ebx
add eax, eax
and edx, 0xff00ff00
and eax, 0xff0000
add eax, edx
shr eax, 4
mov dword [edi], eax
mov ebx, dword [ebp + 0x54]
inc esi
add edi, 4
dec ecx
jne 0x42e0e9
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x68]
sub ecx, dword [ebp + 0x64]
sub eax, dword [ebp + 0x6c]
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x68], eax
pop ecx
dec ecx
jne 0x42e0df
popal
popfd
pop edi
pop esi
pop ebx
add ebp, 0x58
mov esp, ebp
pop ebp
ret 0x20
pushfd
cld
pushal
mov ecx, dword [ebp + 0x74]
mov ebx, dword [ebp + 0x54]
push ecx
mov edi, dword [ebp + 0x60]
mov esi, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x70]
xor edx, edx
mov dl, byte [esi]
cmp edx, dword [ebp + 0x7c]
je 0x42e1db
lea eax, [ebx + edx*4]
mov edx, dword [eax]
and edx, 0xff00ff
mov ebx, edx
shl edx, 4
sub edx, ebx
mov ebx, dword [edi]
and ebx, 0xff00ff
add edx, ebx
mov eax, dword [eax]
and eax, 0xff00
mov ebx, eax
shl eax, 4
sub eax, ebx
mov ebx, dword [edi]
and ebx, 0xff00
add eax, ebx
and edx, 0xff00ff00
and eax, 0xff0000
add eax, edx
shr eax, 4
mov dword [edi], eax
mov ebx, dword [ebp + 0x54]
inc esi
add edi, 4
dec ecx
jne 0x42e189
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x68]
sub ecx, dword [ebp + 0x64]
sub eax, dword [ebp + 0x6c]
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x68], eax
pop ecx
dec ecx
jne 0x42e17f
popal
popfd
pop edi
pop esi
pop ebx
add ebp, 0x58
mov esp, ebp
pop ebp
ret 0x20