Function at 0x415f34
Capabilities:
Enumerate pe sections

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x20
mov ecx, dword [esp + 0x34]
mov ebx, dword [ecx]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
test eax, eax
je 0x416426
movzx eax, byte [ecx + 8]
mov edi, eax
and edi, 4
je 0x415f71
cmp eax, 3
je 0x416426
mov ebp, dword [esp + 0x3c]
test ebp, ebp
je 0x416426
test eax, eax
je 0x416c9d
cmp eax, 2
je 0x41629a
cmp eax, 4
jne 0x416092
movzx ebp, byte [ecx + 9]
cmp ebp, 8
je 0x416508
mov ebp, dword [esp + 0x54]
test ebp, ebp
je 0x41645b
mov ebp, dword [esp + 0x58]
test ebp, ebp
je 0x41645b
mov ebp, dword [esp + 0x5c]
test ebp, ebp
je 0x41645b
mov esi, edx
xor ebp, ebp
test ebx, ebx
jbe 0x4163ea
mov dword [esp], ebx
mov ebx, esi
movzx ecx, byte [edx + 2]
movzx eax, byte [edx + 3]
shl ecx, 8
add ecx, eax
movzx eax, cx
cmp eax, 0xffff
je 0x41642e
test eax, eax
jne 0x416002
mov edi, dword [esp + 0x40]
movzx eax, word [edi + 8]
sar eax, 8
mov byte [ebx], al
movzx ecx, word [edi + 8]
mov byte [ebx + 1], cl
jmp 0x41606a
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x5c]
movzx edi, byte [edx + 1]
mov dword [esp + 0x14], ebp
movzx ebp, byte [edx]
sar edi, cl
mov edi, dword [esi + edi*4]
movzx ebp, word [edi + ebp*2]
mov edi, eax
imul eax, ebp
neg edi
mov esi, dword [esp + 0x44]
add edi, 0xffff
movzx esi, word [esi + 8]
imul esi, edi
lea ebp, [esi + eax + 0x8000]
mov eax, ebp
shr eax, 0x10
add ebp, eax
mov eax, ebp
shr eax, 0x10
movzx eax, al
sar eax, cl
mov ecx, dword [esp + 0x58]
mov eax, dword [ecx + eax*4]
shr ebp, 0x18
movzx ecx, word [eax + ebp*2]
mov ebp, dword [esp + 0x14]
mov eax, ecx
sar eax, 8
mov byte [ebx], al
mov byte [ebx + 1], cl
mov eax, dword [esp]
add edx, 4
add ebx, 2
add ebp, 1
cmp ebp, eax
jb 0x415fcd
mov ebx, eax
mov ecx, dword [esp + 0x34]
movzx eax, byte [ecx + 8]
mov edi, eax
and edi, 4
jmp 0x4163ea
cmp eax, 6
jne 0x4163ea
movzx ebp, byte [ecx + 9]
cmp ebp, 8
je 0x416863
mov ebp, dword [esp + 0x54]
test ebp, ebp
je 0x4166d7
mov ebp, dword [esp + 0x58]
test ebp, ebp
je 0x4166d7
mov ebp, dword [esp + 0x5c]
test ebp, ebp
je 0x4166d7
mov esi, edx
xor ebp, ebp
test ebx, ebx
jbe 0x4163ea
mov dword [esp], ebx
movzx ecx, byte [edx + 6]
movzx eax, byte [edx + 7]
shl ecx, 8
add ecx, eax
movzx eax, cx
cmp eax, 0xffff
je 0x41664b
test eax, eax
jne 0x416149
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x40]
movzx eax, word [edi + 2]
sar eax, 8
mov byte [esi], al
movzx ebx, word [ecx + 2]
mov eax, dword [esp + 0x40]
mov byte [esi + 1], bl
movzx eax, word [eax + 4]
sar eax, 8
mov byte [esi + 2], al
mov eax, dword [esp + 0x40]
movzx eax, word [eax + 4]
mov byte [esi + 3], al
mov eax, dword [esp + 0x40]
movzx eax, word [eax + 6]
sar eax, 8
mov byte [esi + 4], al
mov eax, dword [esp + 0x40]
movzx eax, word [eax + 6]
mov byte [esi + 5], al
jmp 0x416272
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x5c]
movzx ebx, byte [edx]
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebp
movzx ebp, byte [edx + 1]
sar ebp, cl
mov ebp, dword [edi + ebp*4]
mov edi, dword [esp + 0x44]
movzx ebx, word [ebp + ebx*2]
imul ebx, eax
movzx edi, word [edi + 2]
mov ebp, eax
neg ebp
add ebp, 0xffff
imul edi, ebp
mov dword [esp + 0xc], ebp
lea ebx, [edi + ebx + 0x8000]
mov edi, dword [esp + 0x58]
mov eax, ebx
shr eax, 0x10
add ebx, eax
mov eax, ebx
shr eax, 0x10
movzx eax, al
sar eax, cl
mov eax, dword [edi + eax*4]
shr ebx, 0x18
movzx eax, word [eax + ebx*2]
mov ebx, eax
sar ebx, 8
mov byte [esi], bl
mov byte [esi + 1], al
movzx eax, byte [edx + 3]
movzx ebx, byte [edx + 2]
mov edx, dword [esp + 0x5c]
sar eax, cl
mov eax, dword [edx + eax*4]
movzx edx, word [eax + ebx*2]
imul edx, dword [esp + 0x14]
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x58]
movzx eax, word [eax + 4]
imul eax, ebp
lea edx, [eax + edx + 0x8000]
mov eax, edx
shr eax, 0x10
add edx, eax
mov eax, edx
shr eax, 0x10
movzx eax, al
sar eax, cl
shr edx, 0x18
mov eax, dword [ebx + eax*4]
movzx edx, word [eax + edx*2]
mov eax, edx
sar eax, 8
mov byte [esi + 2], al
mov eax, dword [esp + 0x5c]
mov byte [esi + 3], dl
mov edx, dword [esp + 0x18]
movzx ebx, byte [edx + 5]
sar ebx, cl
movzx ebp, byte [edx + 4]
mov eax, dword [eax + ebx*4]
movzx ebx, word [eax + ebp*2]
mov eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x14]
imul ebp, ebx
movzx eax, word [eax + 6]
imul eax, dword [esp + 0xc]
lea edi, [eax + ebp + 0x8000]
mov ebp, dword [esp + 0x10]
mov eax, edi
shr eax, 0x10
add edi, eax
mov eax, edi
shr eax, 0x10
movzx eax, al
sar eax, cl
shr edi, 0x18
mov ecx, dword [esp + 0x58]
mov eax, dword [ecx + eax*4]
movzx ecx, word [eax + edi*2]
mov eax, ecx
sar eax, 8
mov byte [esi + 4], al
mov byte [esi + 5], cl
mov eax, dword [esp]
add edx, 8
add esi, 6
add ebp, 1
cmp ebp, eax
jb 0x4160db
mov ebx, eax
mov ecx, dword [esp + 0x34]
movzx eax, byte [ecx + 8]
mov edi, eax
and edi, 4
jmp 0x4163ea
movzx ebp, byte [ecx + 9]
cmp ebp, 8
je 0x416b95
mov ebp, dword [esp + 0x54]
test ebp, ebp
je 0x416ace
xor ebp, ebp
test ebx, ebx
jbe 0x4163ea
mov dword [esp], ebx
mov dword [esp + 4], ebp
movzx edi, byte [edx]
movzx ebx, byte [edx + 1]
movzx ecx, byte [edx + 2]
movzx esi, byte [edx + 4]
mov dword [esp + 0xc], ecx
mov eax, edi
mov dword [esp + 8], esi
shl eax, 8
add eax, ebx
movzx ebp, ax
movzx eax, byte [edx + 3]
mov dword [esp + 0x10], eax
shl ecx, 8
add ecx, eax
movzx eax, byte [edx + 5]
movzx ecx, cx
shl esi, 8
add esi, eax
movzx esi, si
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x3c]
movzx esi, word [esi + 2]
cmp ebp, esi
jne 0x416365
mov ebp, dword [esp + 0x3c]
movzx ebp, word [ebp + 4]
cmp ecx, ebp
jne 0x416365
mov ecx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x14]
movzx ecx, word [ecx + 6]
cmp ebp, ecx
jne 0x416365
mov ebp, dword [esp + 0x40]
movzx eax, word [ebp + 2]
sar eax, 8
mov byte [edx], al
movzx ecx, word [ebp + 2]
mov byte [edx + 1], cl
movzx ebx, word [ebp + 4]
sar ebx, 8
mov byte [edx + 2], bl
movzx eax, word [ebp + 4]
mov byte [edx + 3], al
movzx eax, word [ebp + 6]
sar eax, 8
mov byte [edx + 4], al
movzx eax, word [ebp + 6]
mov byte [edx + 5], al
jmp 0x4163c2
mov ebp, dword [esp + 0x60]
mov ecx, ebp
sar ebx, cl
mov ecx, dword [esp + 0x54]
mov ebx, dword [ecx + ebx*4]
movzx ebx, word [ebx + edi*2]
mov edi, dword [esp + 0x54]
mov ecx, ebx
sar ecx, 8
mov byte [edx], cl
mov byte [edx + 1], bl
mov ebx, dword [esp + 0x10]
mov ecx, ebp
sar ebx, cl
mov ebx, dword [edi + ebx*4]
mov edi, dword [esp + 0xc]
movzx ebx, word [ebx + edi*2]
mov ecx, ebx
sar ecx, 8
mov byte [edx + 2], cl
mov byte [edx + 3], bl
mov ecx, ebp
sar eax, cl
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 8]
movzx ecx, word [eax + ecx*2]
mov eax, ecx
sar eax, 8
mov byte [edx + 4], al
mov byte [edx + 5], cl
mov eax, dword [esp + 4]
mov ecx, dword [esp]
add edx, 6
add eax, 1
cmp eax, ecx
mov dword [esp + 4], eax
jb 0x4162c4
mov ebx, ecx
mov ecx, dword [esp + 0x34]
movzx eax, byte [ecx + 8]
mov edi, eax
and edi, 4
test edi, edi
je 0x416426
movzx ebp, byte [ecx + 9]
and eax, 0xfb
mov byte [ecx + 8], al
movzx eax, byte [ecx + 0xa]
add eax, 0xffffffff
mov byte [ecx + 0xa], al
imul eax, ebp
movzx eax, al
mov byte [ecx + 0xb], al
cmp eax, 8
jl 0x41641a
shr eax, 3
imul ebx, eax
jmp 0x416423
imul ebx, eax
add ebx, 7
shr ebx, 3
mov dword [ecx + 4], ebx
add esp, 0x20
pop ebx
pop ebp
pop esi
pop edi
ret
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x54]
movzx edi, byte [edx + 1]
sar edi, cl
movzx ecx, byte [edx]
mov eax, dword [eax + edi*4]
movzx eax, word [eax + ecx*2]
mov dword [esp + 0x10], eax
sar eax, 8
mov byte [ebx], al
mov eax, dword [esp + 0x10]
mov byte [ebx + 1], al
jmp 0x41606a
mov esi, edx
xor ebp, ebp
test ebx, ebx
jbe 0x4163ea
mov dword [esp], ebx
mov ebx, esi
movzx ecx, byte [edx + 2]
movzx eax, byte [edx + 3]
shl ecx, 8
add ecx, eax
movzx ecx, cx
cmp ecx, 0xffff
je 0x4166cc
test ecx, ecx
jne 0x41649e
mov edi, dword [esp + 0x40]
movzx eax, word [edi + 8]
sar eax, 8
mov byte [ebx], al
movzx ecx, word [edi + 8]
mov byte [ebx + 1], cl
jmp 0x4164e0
mov esi, dword [esp + 0x44]
movzx edi, byte [edx]
movzx eax, byte [edx + 1]
movzx esi, word [esi + 8]
shl edi, 8
add edi, eax
movzx eax, di
mov edi, ecx
imul ecx, eax
neg edi
add edi, 0xffff
imul esi, edi
lea ecx, [esi + ecx + 0x8000]
mov eax, ecx
shr eax, 0x10
add ecx, eax
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [ebx], cl
mov byte [ebx + 1], al
mov eax, dword [esp]
add edx, 4
add ebx, 2
add ebp, 1
cmp ebp, eax
jb 0x416468
mov ebx, eax
mov ecx, dword [esp + 0x34]
movzx eax, byte [ecx + 8]
mov edi, eax
and edi, 4
jmp 0x4163ea
mov ebp, dword [esp + 0x50]
test ebp, ebp
je 0x4165ce
mov ebp, dword [esp + 0x4c]
test ebp, ebp
je 0x4165ce
mov ebp, dword [esp + 0x48]
test ebp, ebp
je 0x4165ce
mov esi, edx
xor ebp, ebp
test ebx, ebx
jbe 0x4163ea
mov dword [esp], ebx
movzx ecx, byte [edx + 1]
cmp ecx, 0xff
je 0x4165bf
test ecx, ecx
jne 0x416557
mov edi, dword [esp + 0x40]
movzx eax, word [edi + 8]
mov byte [esi], al
jmp 0x41659b
mov eax, dword [esp + 0x50]
movzx ebx, byte [edx]
movzx eax, byte [ebx + eax]
mov ebx, dword [esp + 0x44]
movzx ebx, word [ebx + 8]
mov edi, ecx
imul ecx, eax
neg edi
add edi, 0xff
imul ebx, edi
lea ecx, [ebx + ecx + 0x80]
movzx ecx, cx
mov eax, ecx
sar eax, 8
add ecx, eax
mov eax, dword [esp + 0x4c]
sar ecx, 8
movzx ecx, cl
movzx eax, byte [ecx + eax]
mov byte [esi], al
mov eax, dword [esp]
add edx, 2
add esi, 1
add ebp, 1
cmp ebp, eax
jb 0x41653b
mov ebx, eax
mov ecx, dword [esp + 0x34]
movzx eax, byte [ecx + 8]
mov edi, eax
and edi, 4
jmp 0x4163ea
mov eax, dword [esp + 0x48]
movzx edi, byte [edx]
movzx ecx, byte [edi + eax]
mov byte [esi], cl
jmp 0x41659b
mov esi, edx
xor ebp, ebp
test ebx, ebx
jbe 0x4163ea
mov ecx, esi
movzx eax, byte [edx + 1]
cmp eax, 0xff
je 0x416644
test eax, eax
jne 0x4165f7
mov edi, dword [esp + 0x40]
movzx eax, word [edi + 8]
mov byte [ecx], al
jmp 0x416625
mov esi, dword [esp + 0x44]
movzx edi, byte [edx]
imul edi, eax
movzx esi, word [esi + 8]
neg eax
add eax, 0xff
imul esi, eax
lea eax, [edi + esi + 0x80]
movzx eax, ax
mov edi, eax
sar edi, 8
add eax, edi
sar eax, 8
mov byte [ecx], al
add edx, 2
add ecx, 1
add ebp, 1
cmp ebp, ebx
jb 0x4165dc
mov ecx, dword [esp + 0x34]
movzx eax, byte [ecx + 8]
mov edi, eax
and edi, 4
jmp 0x4163ea
movzx eax, byte [edx]
mov byte [ecx], al
jmp 0x416625
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x54]
movzx ebx, byte [edx + 1]
sar ebx, cl
movzx ecx, byte [edx]
mov eax, dword [eax + ebx*4]
movzx eax, word [eax + ecx*2]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x14], eax
sar eax, 8
mov byte [esi], al
mov eax, dword [esp + 0x14]
mov byte [esi + 1], al
movzx eax, byte [edx + 3]
movzx ebx, byte [edx + 2]
sar eax, cl
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x60]
movzx eax, word [eax + ebx*2]
mov dword [esp + 0x14], eax
sar eax, 8
mov byte [esi + 2], al
mov eax, dword [esp + 0x14]
mov byte [esi + 3], al
mov eax, dword [esp + 0x54]
movzx edi, byte [edx + 5]
sar edi, cl
movzx ecx, byte [edx + 4]
mov eax, dword [eax + edi*4]
movzx eax, word [eax + ecx*2]
mov dword [esp + 0x14], eax
sar eax, 8
mov byte [esi + 4], al
mov eax, dword [esp + 0x14]
mov byte [esi + 5], al
jmp 0x416272
movzx eax, word [edx]
mov word [ebx], ax
jmp 0x4164e0
mov ebp, edx
xor esi, esi
test ebx, ebx
jbe 0x4163ea
mov dword [esp + 4], esi
mov dword [esp], ebx
mov ebx, dword [esp + 0x40]
movzx ecx, byte [edx + 6]
movzx eax, byte [edx + 7]
shl ecx, 8
add ecx, eax
movzx ecx, cx
cmp ecx, 0xffff
je 0x416854
test ecx, ecx
jne 0x416746
movzx eax, word [ebx + 2]
sar eax, 8
mov byte [ebp], al
movzx ecx, word [ebx + 2]
mov byte [ebp + 1], cl
movzx eax, word [ebx + 4]
sar eax, 8
mov byte [ebp + 2], al
movzx eax, word [ebx + 4]
mov byte [ebp + 3], al
movzx eax, word [ebx + 6]
sar eax, 8
mov byte [ebp + 4], al
movzx eax, word [ebx + 6]
mov byte [ebp + 5], al
jmp 0x416824
movzx edi, byte [edx]
movzx eax, byte [edx + 1]
movzx esi, byte [edx + 2]
mov dword [esp + 0x18], edx
shl edi, 8
add edi, eax
movzx eax, byte [edx + 3]
movzx edi, di
imul edi, ecx
shl esi, 8
add esi, eax
movzx eax, si
movzx esi, byte [edx + 4]
mov dword [esp + 0x14], eax
movzx eax, byte [edx + 5]
movzx edx, word [ebx + 2]
shl esi, 8
add esi, eax
movzx eax, si
mov dword [esp + 0x10], eax
mov eax, ecx
neg eax
add eax, 0xffff
imul edx, eax
mov dword [esp + 0xc], eax
lea eax, [edx + edi + 0x8000]
mov edx, eax
shr edx, 0x10
add eax, edx
mov edx, dword [esp + 0x14]
imul edx, ecx
imul ecx, dword [esp + 0x10]
mov dword [esp + 8], eax
shr eax, 0x10
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 8]
shr eax, 0x18
mov byte [ebp], al
mov eax, dword [esp + 0x1c]
mov byte [ebp + 1], al
movzx eax, word [ebx + 4]
imul eax, dword [esp + 0xc]
lea eax, [eax + edx + 0x8000]
mov edx, eax
shr edx, 0x10
add eax, edx
mov edx, eax
shr edx, 0x10
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x18]
shr eax, 0x18
mov byte [ebp + 2], al
mov eax, dword [esp + 0x1c]
mov byte [ebp + 3], al
movzx eax, word [ebx + 6]
imul eax, dword [esp + 0xc]
lea ecx, [eax + ecx + 0x8000]
mov eax, ecx
shr eax, 0x10
add ecx, eax
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [ebp + 4], cl
mov byte [ebp + 5], al
mov eax, dword [esp + 4]
mov ecx, dword [esp]
add edx, 8
add ebp, 6
add eax, 1
cmp eax, ecx
mov dword [esp + 4], eax
jb 0x4166ee
mov ebx, ecx
mov ecx, dword [esp + 0x34]
movzx eax, byte [ecx + 8]
mov edi, eax
and edi, 4
jmp 0x4163ea
mov eax, dword [edx]
movzx ecx, word [edx + 4]
mov dword [ebp], eax
mov word [ebp + 4], cx
jmp 0x416824
mov ebp, dword [esp + 0x50]
test ebp, ebp
je 0x4169cf
mov ebp, dword [esp + 0x4c]
test ebp, ebp
je 0x4169cf
mov ebp, dword [esp + 0x48]
test ebp, ebp
je 0x4169cf
mov esi, edx
xor ebp, ebp
test ebx, ebx
jbe 0x4163ea
mov dword [esp], ebx
movzx eax, byte [edx + 3]
cmp eax, 0xff
je 0x4169aa
test eax, eax
jne 0x4168c6
mov edi, dword [esp + 0x40]
movzx eax, word [edi + 2]
mov byte [esi], al
movzx ecx, word [edi + 4]
mov byte [esi + 1], cl
movzx ebx, word [edi + 6]
mov byte [esi + 2], bl
jmp 0x416982
mov ebx, dword [esp + 0x50]
mov edi, dword [esp + 0x44]
movzx ecx, byte [edx]
movzx ebx, byte [ecx + ebx]
movzx ecx, word [edi + 2]
imul ebx, eax
mov dword [esp + 0x1c], ebp
mov ebp, eax
neg ebp
add ebp, 0xff
imul ecx, ebp
lea ecx, [ecx + ebx + 0x80]
movzx ebx, cx
mov ecx, ebx
sar ecx, 8
add ebx, ecx
mov ecx, dword [esp + 0x4c]
sar ebx, 8
movzx ebx, bl
movzx ecx, byte [ebx + ecx]
mov ebx, dword [esp + 0x50]
mov byte [esi], cl
movzx ecx, byte [edx + 1]
movzx ebx, byte [ecx + ebx]
imul ebx, eax
movzx ecx, word [edi + 4]
imul ecx, ebp
lea ecx, [ecx + ebx + 0x80]
movzx ebx, cx
mov ecx, ebx
sar ecx, 8
add ebx, ecx
mov ecx, dword [esp + 0x4c]
sar ebx, 8
movzx ebx, bl
movzx ebx, byte [ebx + ecx]
mov byte [esi + 1], bl
mov ebx, dword [esp + 0x50]
movzx ecx, byte [edx + 2]
movzx ecx, byte [ecx + ebx]
imul eax, ecx
movzx ebx, word [edi + 6]
imul ebx, ebp
lea eax, [ebx + eax + 0x80]
movzx ecx, ax
mov ebp, dword [esp + 0x1c]
mov eax, ecx
sar eax, 8
add ecx, eax
sar ecx, 8
movzx ecx, cl
mov eax, dword [esp + 0x4c]
movzx eax, byte [ecx + eax]
mov byte [esi + 2], al
mov eax, dword [esp]
add edx, 4
add esi, 3
add ebp, 1
cmp ebp, eax
jb 0x416896
mov ebx, eax
mov ecx, dword [esp + 0x34]
movzx eax, byte [ecx + 8]
mov edi, eax
and edi, 4
jmp 0x4163ea
mov edi, dword [esp + 0x48]
movzx ebx, byte [edx]
movzx eax, byte [ebx + edi]
mov byte [esi], al
movzx eax, byte [edx + 1]
movzx ecx, byte [eax + edi]
mov byte [esi + 1], cl
movzx eax, byte [edx + 2]
movzx eax, byte [eax + edi]
mov byte [esi + 2], al
jmp 0x416982
mov esi, edx
xor ebp, ebp
test ebx, ebx
jbe 0x4163ea
mov dword [esp], ebx
movzx eax, byte [edx + 3]
cmp eax, 0xff
je 0x416ab9
test eax, eax
jne 0x416a0e
mov edi, dword [esp + 0x40]
movzx eax, word [edi + 2]
mov byte [esi], al
movzx ecx, word [edi + 4]
mov byte [esi + 1], cl
movzx ebx, word [edi + 6]
mov byte [esi + 2], bl
jmp 0x416a91
mov edi, dword [esp + 0x40]
movzx ecx, byte [edx]
movzx ebx, word [edi + 2]
imul ecx, eax
mov dword [esp + 0x1c], ebp
mov ebp, eax
neg ebp
add ebp, 0xff
imul ebx, ebp
lea ecx, [ecx + ebx + 0x80]
movzx ecx, cx
mov ebx, ecx
sar ebx, 8
add ecx, ebx
sar ecx, 8
mov byte [esi], cl
movzx ecx, byte [edx + 1]
imul ecx, eax
movzx ebx, word [edi + 4]
imul ebx, ebp
lea ecx, [ecx + ebx + 0x80]
movzx ebx, cx
mov ecx, ebx
sar ecx, 8
add ebx, ecx
sar ebx, 8
mov byte [esi + 1], bl
movzx ecx, byte [edx + 2]
imul ecx, eax
movzx eax, word [edi + 6]
imul eax, ebp
lea eax, [ecx + eax + 0x80]
movzx ecx, ax
mov ebp, dword [esp + 0x1c]
mov eax, ecx
sar eax, 8
add ecx, eax
sar ecx, 8
mov byte [esi + 2], cl
mov eax, dword [esp]
add edx, 4
add esi, 3
add ebp, 1
cmp ebp, eax
jb 0x4169de
mov ebx, eax
mov ecx, dword [esp + 0x34]
movzx eax, byte [ecx + 8]
mov edi, eax
and edi, 4
jmp 0x4163ea
movzx eax, byte [edx]
mov byte [esi], al
movzx ecx, byte [edx + 1]
mov byte [esi + 1], cl
movzx ebx, byte [edx + 2]
mov byte [esi + 2], bl
jmp 0x416a91
xor ebp, ebp
test ebx, ebx
jbe 0x4163ea
mov edi, dword [esp + 0x3c]
mov dword [esp], ebx
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
movzx esi, byte [edx + 4]
shl ecx, 8
add eax, ecx
movzx ecx, byte [edx + 2]
movzx ebx, ax
movzx eax, byte [edx + 3]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx + 5]
movzx ecx, cx
shl esi, 8
add esi, eax
movzx eax, si
movzx esi, word [edi + 2]
cmp ebx, esi
jne 0x416b70
movzx ebx, word [edi + 4]
cmp ecx, ebx
jne 0x416b70
movzx ecx, word [edi + 6]
cmp eax, ecx
jne 0x416b70
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x40]
movzx ecx, word [eax + 2]
sar ecx, 8
mov byte [edx], cl
movzx eax, word [ebx + 2]
mov byte [edx + 1], al
mov eax, dword [esp + 0x40]
movzx eax, word [eax + 4]
sar eax, 8
mov byte [edx + 2], al
mov eax, dword [esp + 0x40]
movzx eax, word [eax + 4]
mov byte [edx + 3], al
mov eax, dword [esp + 0x40]
movzx eax, word [eax + 6]
sar eax, 8
mov byte [edx + 4], al
mov eax, dword [esp + 0x40]
movzx eax, word [eax + 6]
mov byte [edx + 5], al
mov eax, dword [esp]
add edx, 6
add ebp, 1
cmp ebp, eax
jb 0x416adf
mov ebx, eax
mov ecx, dword [esp + 0x34]
movzx eax, byte [ecx + 8]
mov edi, eax
and edi, 4
jmp 0x4163ea
mov ebp, dword [esp + 0x48]
test ebp, ebp
je 0x416c38
xor ebp, ebp
test ebx, ebx
jbe 0x4163ea
mov dword [esp], ebx
mov ebx, dword [esp + 0x48]
mov ecx, dword [esp + 0x3c]
movzx eax, byte [edx]
movzx edi, word [ecx + 2]
cmp eax, edi
jne 0x416bfb
mov ecx, dword [esp + 0x3c]
movzx edi, byte [edx + 1]
movzx ecx, word [ecx + 4]
cmp edi, ecx
jne 0x416bfb
mov ecx, dword [esp + 0x3c]
movzx edi, byte [edx + 2]
movzx ecx, word [ecx + 6]
cmp edi, ecx
jne 0x416bfb
mov edi, dword [esp + 0x40]
movzx eax, word [edi + 2]
mov byte [edx], al
movzx ecx, word [edi + 4]
mov byte [edx + 1], cl
movzx eax, word [edi + 6]
mov byte [edx + 2], al
jmp 0x416c17
movzx eax, byte [eax + ebx]
movzx edi, byte [edx + 1]
mov byte [edx], al
movzx ecx, byte [edi + ebx]
movzx eax, byte [edx + 2]
mov byte [edx + 1], cl
movzx eax, byte [eax + ebx]
mov byte [edx + 2], al
mov eax, dword [esp]
add edx, 3
add ebp, 1
cmp ebp, eax
jb 0x416bb2
mov ebx, eax
mov ecx, dword [esp + 0x34]
movzx eax, byte [ecx + 8]
mov edi, eax
and edi, 4
jmp 0x4163ea
xor ebp, ebp
test ebx, ebx
jbe 0x4163ea
mov edi, dword [esp + 0x3c]
movzx eax, byte [edx]
movzx ecx, word [edi + 2]
cmp eax, ecx
jne 0x416c81
movzx eax, byte [edx + 1]
movzx ecx, word [edi + 4]
cmp eax, ecx
jne 0x416c81
movzx eax, byte [edx + 2]
movzx ecx, word [edi + 6]
cmp eax, ecx
jne 0x416c81
mov esi, dword [esp + 0x40]
movzx eax, word [esi + 2]
mov byte [edx], al
movzx ecx, word [esi + 4]
mov byte [edx + 1], cl
movzx eax, word [esi + 6]
mov byte [edx + 2], al
add edx, 3
add ebp, 1
cmp ebp, ebx
jb 0x416c46
mov ecx, dword [esp + 0x34]
movzx eax, byte [ecx + 8]
mov edi, eax
and edi, 4
jmp 0x4163ea
movzx ebp, byte [ecx + 9]
cmp ebp, 1
je 0x417107
cmp ebp, 2
je 0x416f8e
cmp ebp, 4
je 0x416da1
cmp ebp, 8
jne 0x416d18
mov esi, dword [esp + 0x48]
xor ebp, ebp
test esi, esi
je 0x416ea6
test ebx, ebx
jbe 0x4163ea
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
movzx eax, byte [edx]
movzx esi, word [edi + 8]
cmp eax, esi
jne 0x416cf2
movzx eax, word [ecx + 8]
mov byte [edx], al
jmp 0x416cfc
mov esi, dword [esp + 0x48]
movzx eax, byte [eax + esi]
mov byte [edx], al
add edx, 1
add ebp, 1
cmp ebp, ebx
jb 0x416cdf
mov ecx, dword [esp + 0x34]
movzx eax, byte [ecx + 8]
mov edi, eax
and edi, 4
jmp 0x4163ea
cmp ebp, 0x10
jne 0x4163ea
mov esi, dword [esp + 0x54]
xor ebp, ebp
test esi, esi
je 0x416e53
test ebx, ebx
jbe 0x4163ea
movzx esi, byte [edx]
movzx edi, byte [edx + 1]
mov ecx, esi
shl ecx, 8
add ecx, edi
movzx eax, cx
mov ecx, dword [esp + 0x3c]
movzx ecx, word [ecx + 8]
cmp eax, ecx
jne 0x416d6a
mov edi, dword [esp + 0x40]
movzx eax, word [edi + 8]
sar eax, 8
mov byte [edx], al
movzx ecx, word [edi + 8]
mov byte [edx + 1], cl
jmp 0x416d85
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x54]
sar edi, cl
mov edi, dword [eax + edi*4]
movzx eax, word [edi + esi*2]
mov ecx, eax
sar ecx, 8
mov byte [edx], cl
mov byte [edx + 1], al
add edx, 2
add ebp, 1
cmp ebp, ebx
jb 0x416d37
mov ecx, dword [esp + 0x34]
movzx eax, byte [ecx + 8]
mov edi, eax
and edi, 4
jmp 0x4163ea
mov ebp, dword [esp + 0x48]
mov esi, 4
test ebp, ebp
je 0x416ee3
xor ebp, ebp
test ebx, ebx
jbe 0x4163ea
mov dword [esp], ebx
mov edi, dword [esp + 0x3c]
movzx eax, byte [edx]
movzx edi, word [edi + 8]
mov ecx, esi
mov ebx, eax
sar ebx, cl
mov ecx, esi
neg ecx
and ebx, 0xf
add ecx, 4
add ebp, 1
cmp ebx, edi
jne 0x416e01
mov edi, dword [esp + 0x40]
mov ebx, 0xf0f
sar ebx, cl
mov ecx, esi
and eax, ebx
movzx eax, al
mov byte [edx], al
movzx ebx, word [edi + 8]
shl ebx, cl
or eax, ebx
mov byte [edx], al
jmp 0x416e27
mov edi, ebx
shl edi, 4
or ebx, edi
mov edi, dword [esp + 0x48]
movzx ebx, byte [ebx + edi]
sar ebx, 4
and ebx, 0xf
mov edi, 0xf0f
sar edi, cl
mov ecx, esi
shl ebx, cl
and eax, edi
or eax, ebx
mov byte [edx], al
test esi, esi
jne 0x416e35
mov esi, 4
add edx, 1
jmp 0x416e38
add esi, 0xfffffffc
mov eax, dword [esp]
cmp ebp, eax
jb 0x416dbf
mov ebx, eax
mov ecx, dword [esp + 0x34]
movzx eax, byte [ecx + 8]
mov edi, eax
and edi, 4
jmp 0x4163ea
test ebx, ebx
jbe 0x4163ea
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
movzx eax, byte [edx]
movzx ecx, byte [edx + 1]
shl eax, 8
add ecx, eax
movzx eax, cx
movzx ecx, word [esi + 8]
cmp eax, ecx
jne 0x416e8a
movzx eax, word [edi + 8]
sar eax, 8
mov byte [edx], al
movzx ecx, word [edi + 8]
mov byte [edx + 1], cl
add edx, 2
add ebp, 1
cmp ebp, ebx
jb 0x416e63
mov ecx, dword [esp + 0x34]
movzx eax, byte [ecx + 8]
mov edi, eax
and edi, 4
jmp 0x4163ea
test ebx, ebx
jbe 0x4163ea
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
movzx eax, byte [edx]
movzx esi, word [edi + 8]
cmp eax, esi
jne 0x416ec7
movzx eax, word [ecx + 8]
mov byte [edx], al
add edx, 1
add ebp, 1
cmp ebp, ebx
jb 0x416eb6
mov ecx, dword [esp + 0x34]
movzx eax, byte [ecx + 8]
mov edi, eax
and edi, 4
jmp 0x4163ea
xor ebp, ebp
test ebx, ebx
jbe 0x4163ea
mov eax, dword [esp + 0x3c]
movzx eax, word [eax + 8]
movzx edi, byte [edx]
sar edi, 4
and edi, 0xf
cmp edi, eax
jne 0x416f85
movzx eax, byte [edx]
mov dword [esp], ebx
mov ebx, dword [esp + 0x40]
mov ecx, esi
neg ecx
add ecx, 4
mov edi, 0xf0f
sar edi, cl
mov ecx, esi
and eax, edi
movzx eax, al
mov byte [edx], al
movzx edi, word [ebx + 8]
shl edi, cl
or eax, edi
mov byte [edx], al
mov ebx, dword [esp]
mov ecx, esi
mov esi, edx
test ecx, ecx
jne 0x416f46
mov ecx, 4
add esi, 1
jmp 0x416f49
add ecx, 0xfffffffc
add ebp, 1
cmp ebp, ebx
jae 0x416f73
mov edi, dword [esp + 0x3c]
movzx eax, byte [esi]
movzx edi, word [edi + 8]
mov edx, eax
sar edx, cl
and edx, 0xf
cmp edx, edi
jne 0x416f38
mov dword [esp], ebx
mov ebx, dword [esp + 0x40]
mov edx, esi
mov esi, ecx
jmp 0x416f10
mov ecx, dword [esp + 0x34]
movzx eax, byte [ecx + 8]
mov edi, eax
and edi, 4
jmp 0x4163ea
mov dword [esp], ebx
mov ebx, dword [esp + 0x40]
jmp 0x416f31
mov ebp, dword [esp + 0x48]
mov esi, 6
test ebp, ebp
je 0x41705c
xor ebp, ebp
test ebx, ebx
jbe 0x4163ea
mov dword [esp], ebx
movzx eax, byte [edx]
mov ecx, esi
mov ebx, eax
sar ebx, cl
mov edi, esi
neg edi
and ebx, 3
add edi, 6
mov dword [esp + 0x14], edi
add ebp, 1
mov edi, dword [esp + 0x3c]
movzx edi, word [edi + 8]
cmp ebx, edi
jne 0x416ff6
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x40]
mov ebx, 0x3f3f
sar ebx, cl
mov ecx, esi
and eax, ebx
movzx eax, al
mov byte [edx], al
movzx ebx, word [edi + 8]
shl ebx, cl
or eax, ebx
mov byte [edx], al
jmp 0x41702c
lea edi, [ebx + ebx]
add edi, edi
or edi, ebx
mov ecx, ebx
shl ecx, 4
or edi, ecx
mov ecx, dword [esp + 0x14]
shl ebx, 6
or edi, ebx
mov ebx, dword [esp + 0x48]
movzx ebx, byte [edi + ebx]
sar ebx, 6
and ebx, 3
mov edi, 0x3f3f
sar edi, cl
mov ecx, esi
shl ebx, cl
and eax, edi
or eax, ebx
mov byte [edx], al
test esi, esi
jne 0x41703a
mov esi, 6
add edx, 1
jmp 0x41703d
add esi, 0xfffffffe
mov eax, dword [esp]
cmp ebp, eax
jb 0x416fac
mov ebx, eax
mov ecx, dword [esp + 0x34]
movzx eax, byte [ecx + 8]
mov edi, eax
and edi, 4
jmp 0x4163ea
xor ebp, ebp
test ebx, ebx
jbe 0x4163ea
mov eax, dword [esp + 0x3c]
movzx eax, word [eax + 8]
movzx edi, byte [edx]
sar edi, 6
and edi, 3
cmp edi, eax
jne 0x4170fe
movzx eax, byte [edx]
mov dword [esp], ebx
mov ebx, dword [esp + 0x40]
mov ecx, esi
neg ecx
add ecx, 6
mov edi, 0x3f3f
sar edi, cl
mov ecx, esi
and eax, edi
movzx eax, al
mov byte [edx], al
movzx edi, word [ebx + 8]
shl edi, cl
or eax, edi
mov byte [edx], al
mov ebx, dword [esp]
mov ecx, esi
mov esi, edx
test ecx, ecx
jne 0x4170bf
mov ecx, 6
add esi, 1
jmp 0x4170c2
add ecx, 0xfffffffe
add ebp, 1
cmp ebp, ebx
jae 0x4170ec
mov edi, dword [esp + 0x3c]
movzx eax, byte [esi]
movzx edi, word [edi + 8]
mov edx, eax
sar edx, cl
and edx, 3
cmp edx, edi
jne 0x4170b1
mov dword [esp], ebx
mov ebx, dword [esp + 0x40]
mov edx, esi
mov esi, ecx
jmp 0x417089
mov ecx, dword [esp + 0x34]
movzx eax, byte [ecx + 8]
mov edi, eax
and edi, 4
jmp 0x4163ea
mov dword [esp], ebx
mov ebx, dword [esp + 0x40]
jmp 0x4170aa
mov esi, 7
xor ebp, ebp
test ebx, ebx
jbe 0x4163ea
mov eax, dword [esp + 0x3c]
movzx eax, word [eax + 8]
movzx edi, byte [edx]
sar edi, 7
and edi, 1
cmp edi, eax
jne 0x4171ae
movzx eax, byte [edx]
mov dword [esp], ebx
mov ebx, dword [esp + 0x40]
mov ecx, esi
neg ecx
add ecx, 7
mov edi, 0x7f7f
sar edi, cl
mov ecx, esi
and eax, edi
movzx eax, al
mov byte [edx], al
movzx edi, word [ebx + 8]
shl edi, cl
or eax, edi
mov byte [edx], al
mov ebx, dword [esp]
mov ecx, esi
mov esi, edx
test ecx, ecx
jne 0x41716f
mov ecx, 7
add esi, 1
jmp 0x417172
add ecx, 0xffffffff
add ebp, 1
cmp ebp, ebx
jae 0x41719c
mov edi, dword [esp + 0x3c]
movzx eax, byte [esi]
movzx edi, word [edi + 8]
mov edx, eax
sar edx, cl
and edx, 1
cmp edx, edi
jne 0x417161
mov dword [esp], ebx
mov ebx, dword [esp + 0x40]
mov edx, esi
mov esi, ecx
jmp 0x417139
mov ecx, dword [esp + 0x34]
movzx eax, byte [ecx + 8]
mov edi, eax
and edi, 4
jmp 0x4163ea
mov dword [esp], ebx
mov ebx, dword [esp + 0x40]
jmp 0x41715a