Function at 0x10158280
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x24
push ebx
mov ebx, dword [esp + 0x2c]
push ebp
mov ebp, dword [esp + 0x38]
push esi
mov ebx, dword [ebx]
push edi
mov eax, dword [ebp + 0x19c]
mov ecx, dword [ebp + 0x190]
mov edx, dword [ebp + 0x194]
mov esi, dword [ebp + 0x198]
mov edi, dword [ebp + 0x18c]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x1a0]
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp + 0x184]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 0x78]
shr ecx, 0xd
movzx eax, byte [eax + 8]
and ecx, 1
mov dword [esp + 0x30], eax
cmp eax, 6
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x10], ebx
ja case.0x10158325.3
mov ebp, dword [esp + 0x30]
jmp dword [ebp*4 + 0x10159460]
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x40]
movzx ecx, byte [ecx + 9]
dec ecx
cmp ecx, 0xf
ja case.0x10158325.3
movzx ecx, byte [ecx + 0x10159494]
jmp dword [ecx*4 + 0x1015947c]
mov ecx, 7
mov dword [esp + 0x40], ecx
test ebx, ebx
je case.0x10158325.3
movzx esi, word [ebp + 0x1bc]
mov dh, byte [eax]
mov dl, dh
shr dl, cl
and dl, 1
movzx ecx, dl
cmp cx, si
jne 0x1015837d
mov dl, byte [ebp + 0x16c]
mov ecx, 7
sub ecx, dword [esp + 0x40]
mov ebx, 0x7f7f
sar ebx, cl
mov ecx, dword [esp + 0x40]
and bl, dh
shl dl, cl
or bl, dl
mov byte [eax], bl
mov ebx, dword [esp + 0x10]
jmp 0x10158381
mov ecx, dword [esp + 0x40]
test ecx, ecx
jne 0x1015838d
mov ecx, 7
inc eax
jmp 0x1015838e
dec ecx
sub ebx, 1
mov dword [esp + 0x40], ecx
mov dword [esp + 0x10], ebx
jne 0x10158344
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test edi, edi
je 0x1015845d
mov edx, 6
mov dword [esp + 0x38], edx
test ebx, ebx
je case.0x10158325.3
movzx esi, word [ebp + 0x1bc]
mov ecx, 6
sub ecx, edx
mov edx, 0x3f3f
sar edx, cl
movzx ecx, byte [esp + 0x38]
mov dword [esp + 0x2c], edx
mov dh, byte [eax]
mov dl, dh
shr dl, cl
and dl, 3
movzx ecx, dl
cmp cx, si
jne 0x101583ff
mov dl, byte [ebp + 0x16c]
mov ecx, dword [esp + 0x38]
and dh, byte [esp + 0x2c]
shl dl, cl
or dl, dh
jmp 0x10158433
movzx ecx, byte [esp + 0x38]
movzx edx, dh
shr edx, cl
and edx, 3
lea ecx, [edx*4]
or ecx, edx
shl ecx, 2
or ecx, edx
shl ecx, 2
or ecx, edx
mov dl, byte [ecx + edi]
mov ecx, dword [esp + 0x38]
shr dl, 6
shl dl, cl
mov cl, byte [eax]
and cl, byte [esp + 0x2c]
or dl, cl
mov byte [eax], dl
mov edx, dword [esp + 0x38]
test edx, edx
jne 0x10158445
mov edx, 6
inc eax
jmp 0x10158448
sub edx, 2
mov dword [esp + 0x38], edx
sub ebx, 1
jne 0x101583c3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov ecx, 6
mov dword [esp + 0x40], ecx
test ebx, ebx
je case.0x10158325.3
movzx esi, word [ebp + 0x1bc]
mov dh, byte [eax]
mov dl, dh
shr dl, cl
and dl, 3
movzx ecx, dl
cmp cx, si
jne 0x101584ae
mov dl, byte [ebp + 0x16c]
mov ecx, 6
sub ecx, dword [esp + 0x40]
mov ebx, 0x3f3f
sar ebx, cl
mov ecx, dword [esp + 0x40]
and bl, dh
shl dl, cl
or bl, dl
mov byte [eax], bl
mov ebx, dword [esp + 0x10]
jmp 0x101584b2
mov ecx, dword [esp + 0x40]
test ecx, ecx
jne 0x101584be
mov ecx, 6
inc eax
jmp 0x101584c1
sub ecx, 2
sub ebx, 1
mov dword [esp + 0x40], ecx
mov dword [esp + 0x10], ebx
jne 0x10158475
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test edi, edi
je 0x1015858e
mov edx, 4
mov dword [esp + 0x38], edx
test ebx, ebx
je case.0x10158325.3
movzx esi, word [ebp + 0x1bc]
nop word [eax + eax]
mov ecx, 4
sub ecx, edx
mov edx, 0xf0f
sar edx, cl
movzx ecx, byte [esp + 0x38]
mov dword [esp + 0x2c], edx
mov dh, byte [eax]
mov dl, dh
shr dl, cl
and dl, 0xf
movzx ecx, dl
cmp cx, si
jne 0x1015853c
mov dl, byte [ebp + 0x16c]
mov ecx, dword [esp + 0x38]
and dh, byte [esp + 0x2c]
shl dl, cl
or dl, dh
jmp 0x10158564
movzx ecx, byte [esp + 0x38]
movzx edx, dh
shr edx, cl
and edx, 0xf
mov ecx, edx
shl ecx, 4
or ecx, edx
mov dl, byte [ecx + edi]
mov ecx, dword [esp + 0x38]
shr dl, 4
shl dl, cl
mov cl, byte [eax]
and cl, byte [esp + 0x2c]
or dl, cl
mov byte [eax], dl
mov edx, dword [esp + 0x38]
test edx, edx
jne 0x10158576
mov edx, 4
inc eax
jmp 0x10158579
sub edx, 4
mov dword [esp + 0x38], edx
sub ebx, 1
jne 0x10158500
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov ecx, 4
mov dword [esp + 0x40], ecx
test ebx, ebx
je case.0x10158325.3
movzx esi, word [ebp + 0x1bc]
mov dh, byte [eax]
mov dl, dh
shr dl, cl
and dl, 0xf
movzx ecx, dl
cmp cx, si
jne 0x101585df
mov dl, byte [ebp + 0x16c]
mov ecx, 4
sub ecx, dword [esp + 0x40]
mov ebx, 0xf0f
sar ebx, cl
mov ecx, dword [esp + 0x40]
and bl, dh
shl dl, cl
or bl, dl
mov byte [eax], bl
mov ebx, dword [esp + 0x10]
jmp 0x101585e3
mov ecx, dword [esp + 0x40]
test ecx, ecx
jne 0x101585ef
mov ecx, 4
inc eax
jmp 0x101585f2
sub ecx, 4
sub ebx, 1
mov dword [esp + 0x40], ecx
mov dword [esp + 0x10], ebx
jne 0x101585a6
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test edi, edi
je 0x10158648
test ebx, ebx
je case.0x10158325.3
movzx esi, word [ebp + 0x1bc]
nop word [eax + eax]
mov dl, byte [eax]
movzx ecx, dl
cmp cx, si
jne 0x10158632
mov cl, byte [ebp + 0x16c]
jmp 0x10158638
movzx ecx, dl
mov cl, byte [ecx + edi]
mov byte [eax], cl
inc eax
sub ebx, 1
jne 0x10158620
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test ebx, ebx
je case.0x10158325.3
movzx edx, word [ebp + 0x1bc]
movzx ecx, byte [eax]
cmp cx, dx
jne 0x10158667
mov cl, byte [ebp + 0x16c]
mov byte [eax], cl
inc eax
sub ebx, 1
jne 0x10158657
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
cmp dword [esp + 0x18], 0
je 0x101586fe
test ebx, ebx
je case.0x10158325.3
movzx esi, word [ebp + 0x1bc]
mov edi, 0x100
mov cl, byte [eax]
mov dl, byte [eax + 1]
mov byte [esp + 0x40], dl
movzx edx, cl
imul edx, edi
mov byte [esp + 0x38], cl
movzx ecx, byte [esp + 0x40]
add dx, cx
cmp dx, si
jne 0x101586bd
movzx ecx, word [ebp + 0x16c]
jmp 0x101586e0
movzx ecx, byte [esp + 0x14]
movzx esi, byte [esp + 0x40]
movzx edx, byte [esp + 0x38]
shr esi, cl
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + esi*4]
movzx esi, word [ebp + 0x1bc]
movzx ecx, word [ecx + edx*2]
mov edx, ecx
shr cx, 8
movzx ecx, cx
mov byte [eax], cl
mov byte [eax + 1], dl
add eax, 2
sub ebx, 1
jne 0x10158694
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test ebx, ebx
je case.0x10158325.3
movzx esi, word [ebp + 0x1bc]
mov edi, 0x100
movzx edx, byte [eax]
movzx ecx, byte [eax + 1]
imul edx, edi
add dx, cx
cmp dx, si
jne 0x10158735
movzx edx, word [ebp + 0x16c]
mov ecx, edx
mov byte [eax + 1], dl
shr ecx, 8
mov byte [eax], cl
add eax, 2
sub ebx, 1
jne 0x10158712
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x40]
mov cl, byte [ecx + 9]
test ebx, ebx
je case.0x10158325.3
cmp cl, 8
jne 0x1015883f
test edi, edi
je 0x101587df
movzx esi, word [ebp + 0x1b6]
lea ecx, [eax + 1]
mov dl, byte [ecx - 1]
movzx eax, dl
cmp ax, si
jne 0x101587b2
movzx eax, byte [ecx]
cmp ax, word [ebp + 0x1b8]
jne 0x101587b2
movzx eax, byte [ecx + 1]
cmp ax, word [ebp + 0x1ba]
jne 0x101587b2
movzx eax, byte [ebp + 0x166]
mov byte [ecx - 1], al
movzx eax, byte [ebp + 0x168]
mov byte [ecx], al
mov al, byte [ebp + 0x16a]
jmp 0x101587cc
movzx eax, dl
movzx eax, byte [eax + edi]
mov byte [ecx - 1], al
movzx eax, byte [ecx]
movzx eax, byte [eax + edi]
mov byte [ecx], al
movzx eax, byte [ecx + 1]
mov al, byte [eax + edi]
mov byte [ecx + 1], al
add ecx, 3
sub ebx, 1
jne 0x10158773
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
movzx edx, word [ebp + 0x1b6]
lea ecx, [eax + 2]
nop dword [eax]
movzx eax, byte [ecx - 2]
cmp ax, dx
jne 0x1015882f
movzx eax, byte [ecx - 1]
cmp ax, word [ebp + 0x1b8]
jne 0x1015882f
movzx eax, byte [ecx]
cmp ax, word [ebp + 0x1ba]
jne 0x1015882f
movzx eax, byte [ebp + 0x166]
mov byte [ecx - 2], al
movzx eax, byte [ebp + 0x168]
mov byte [ecx - 1], al
movzx eax, byte [ebp + 0x16a]
mov byte [ecx], al
add ecx, 3
sub ebx, 1
jne 0x101587f0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov edi, dword [esp + 0x18]
test edi, edi
je 0x10158961
lea esi, [eax + 2]
mov edx, 0x100
mov al, byte [esi - 2]
mov cl, byte [esi - 1]
mov byte [esp + 0x40], cl
movzx ecx, al
mov byte [esp + 0x38], al
movzx eax, dx
imul ecx, eax
movzx eax, byte [esp + 0x40]
add cx, ax
movzx eax, word [ebp + 0x1b6]
cmp cx, ax
jne 0x101588dd
movzx ecx, byte [esi]
movzx eax, dx
imul ecx, eax
movzx eax, byte [esi + 1]
add cx, ax
cmp cx, word [ebp + 0x1b8]
jne 0x101588dd
movzx ecx, byte [esi + 2]
movzx eax, dx
imul ecx, eax
movzx eax, byte [esi + 3]
add cx, ax
cmp cx, word [ebp + 0x1ba]
jne 0x101588dd
movzx ecx, word [ebp + 0x166]
mov eax, ecx
mov byte [esi - 1], cl
movzx ecx, word [ebp + 0x168]
shr eax, 8
mov byte [esi - 2], al
mov eax, ecx
shr eax, 8
mov byte [esi], al
movzx eax, word [ebp + 0x16a]
mov byte [esi + 1], cl
jmp 0x1015893a
mov eax, dword [esp + 0x14]
movzx ebx, al
movzx eax, byte [esp + 0x40]
mov cl, bl
shr eax, cl
movzx ecx, byte [esp + 0x38]
movzx edx, byte [esi]
mov eax, dword [edi + eax*4]
movzx ecx, word [eax + ecx*2]
mov eax, ecx
mov byte [esi - 1], cl
shr eax, 8
mov cl, bl
mov byte [esi - 2], al
movzx eax, byte [esi + 1]
shr eax, cl
mov ebx, dword [esp + 0x10]
mov eax, dword [edi + eax*4]
movzx edx, word [eax + edx*2]
mov eax, edx
mov byte [esi + 1], dl
shr eax, 8
mov edx, 0x100
mov byte [esi], al
movzx eax, byte [esi + 3]
shr eax, cl
movzx ecx, byte [esi + 2]
mov eax, dword [edi + eax*4]
movzx eax, word [eax + ecx*2]
mov ecx, eax
shr ax, 8
movzx eax, ax
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 6
sub ebx, 1
mov dword [esp + 0x10], ebx
jne 0x10158853
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
movzx edi, word [ebp + 0x1b6]
lea edx, [eax + 2]
mov esi, 0x100
movzx ecx, byte [edx - 2]
movzx eax, byte [edx - 1]
imul ecx, esi
add cx, ax
cmp cx, di
jne 0x101589e5
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
imul ecx, esi
add cx, ax
cmp cx, word [ebp + 0x1b8]
jne 0x101589e5
movzx ecx, byte [edx + 2]
movzx eax, byte [edx + 3]
imul ecx, esi
add cx, ax
cmp cx, word [ebp + 0x1ba]
jne 0x101589e5
movzx ecx, word [ebp + 0x166]
mov eax, ecx
mov byte [edx - 1], cl
movzx ecx, word [ebp + 0x168]
shr eax, 8
mov byte [edx - 2], al
mov eax, ecx
shr eax, 8
mov byte [edx + 1], cl
movzx ecx, word [ebp + 0x16a]
mov byte [edx], al
mov eax, ecx
shr eax, 8
mov byte [edx + 2], al
mov byte [edx + 3], cl
add edx, 6
sub ebx, 1
jne 0x10158970
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov ebp, dword [esp + 0x38]
cmp byte [ebp + 9], 8
mov ebp, dword [esp + 0x40]
jne 0x10158b9f
test esi, esi
je 0x10158b3a
test edx, edx
je 0x10158b3a
test edi, edi
je 0x10158b3a
test ebx, ebx
je case.0x10158325.3
mov edx, 0xff
test ecx, ecx
jne 0x10158ac0
movzx esi, byte [eax + 1]
mov dword [esp + 0x40], esi
cmp si, dx
jne 0x10158a49
movzx ecx, byte [eax]
mov cl, byte [ecx + edi]
jmp 0x10158aa6
test si, si
jne 0x10158a56
mov cl, byte [ebp + 0x16c]
jmp 0x10158aa6
mov edx, dword [esp + 0x20]
movzx ecx, byte [eax]
movzx ecx, byte [ecx + edx]
movzx edx, si
mov esi, ecx
movzx ecx, word [ebp + 0x176]
imul esi, edx
mov edx, 0xff
sub edx, dword [esp + 0x40]
movzx edx, dx
imul edx, ecx
mov ecx, 0x80
add si, dx
add si, cx
movzx ecx, si
mov edx, ecx
shr edx, 8
add edx, ecx
shr edx, 8
movzx ecx, dl
mov edx, dword [esp + 0x2c]
mov cl, byte [ecx + edx]
mov edx, 0xff
mov byte [eax], cl
add eax, 2
sub ebx, 1
jne 0x10158a34
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
movzx esi, byte [eax + 1]
mov dword [esp + 0x40], esi
cmp si, dx
jne 0x10158ad5
movzx ecx, byte [eax]
mov dl, byte [ecx + edi]
jmp 0x10158b23
test si, si
jne 0x10158ae2
mov dl, byte [ebp + 0x16c]
jmp 0x10158b23
mov edx, dword [esp + 0x20]
movzx ecx, byte [eax]
movzx ecx, byte [ecx + edx]
movzx edx, si
mov esi, ecx
movzx ecx, word [ebp + 0x176]
imul esi, edx
mov edx, 0xff
sub edx, dword [esp + 0x40]
movzx edx, dx
imul edx, ecx
mov ecx, 0x80
add si, dx
add si, cx
movzx ecx, si
mov edx, ecx
shr edx, 8
add edx, ecx
shr edx, 8
mov byte [eax], dl
add eax, 2
mov edx, 0xff
sub ebx, 1
jne 0x10158ac0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test ebx, ebx
je case.0x10158325.3
mov cl, byte [eax + 1]
test cl, cl
jne 0x10158b53
mov cl, byte [ebp + 0x16c]
mov byte [eax], cl
jmp 0x10158b8f
cmp cl, 0xff
jae 0x10158b8f
movzx edi, byte [eax]
mov edx, 0xff
movzx esi, cl
movzx ecx, word [ebp + 0x16c]
sub edx, esi
movzx edx, dx
imul edx, ecx
mov ecx, 0x80
imul edi, esi
add di, dx
add di, cx
movzx ecx, di
mov edx, ecx
shr edx, 8
add edx, ecx
shr edx, 8
mov byte [eax], dl
add eax, 2
sub ebx, 1
jne 0x10158b42
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
cmp dword [esp + 0x18], 0
je 0x10158d93
cmp dword [esp + 0x28], 0
je 0x10158d93
cmp dword [esp + 0x1c], 0
je 0x10158d93
test ebx, ebx
je case.0x10158325.3
lea edi, [eax + 1]
mov eax, 0x100
mov esi, 0xffff
test ecx, ecx
je 0x10158cc0
nop dword [eax]
movzx ecx, byte [edi + 1]
lea edx, [edi - 1]
movzx eax, ax
imul ecx, eax
movzx eax, byte [edi + 2]
add cx, ax
movzx eax, cx
cmp ax, si
jne 0x10158c26
mov cl, byte [esp + 0x14]
movzx eax, byte [edi]
mov ebp, dword [esp + 0x18]
shr eax, cl
movzx ecx, byte [edx]
mov eax, dword [ebp + eax*4]
mov ebp, dword [esp + 0x40]
movzx eax, word [eax + ecx*2]
mov ecx, eax
shr ax, 8
movzx eax, ax
jmp 0x10158c9a
mov dword [esp + 0x38], edx
test ax, ax
jne 0x10158c41
movzx eax, word [ebp + 0x16c]
mov ecx, eax
shr ax, 8
movzx eax, ax
jmp 0x10158c9a
mov cl, byte [esp + 0x14]
mov esi, eax
movzx eax, byte [edi]
shr eax, cl
movzx ecx, byte [edx]
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + eax*4]
movzx edx, word [eax + ecx*2]
mov ecx, 0xffff
movzx eax, word [ebp + 0x176]
sub ecx, esi
imul eax, ecx
imul edx, esi
mov esi, 0xffff
add edx, 0x8000
add eax, edx
mov edx, dword [esp + 0x38]
mov ecx, eax
shr ecx, 0x10
add ecx, eax
shr ecx, 0x10
mov eax, ecx
shr cx, 8
mov dword [esp + 0x30], eax
movzx eax, cx
mov ecx, dword [esp + 0x30]
mov byte [edx], al
mov eax, 0x100
mov byte [edi], cl
add edi, 4
sub ebx, 1
jne 0x10158be0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
movzx ecx, byte [edi + 1]
lea edx, [edi - 1]
movzx eax, ax
imul ecx, eax
movzx eax, byte [edi + 2]
add cx, ax
movzx eax, cx
cmp ax, si
jne 0x10158cfa
mov cl, byte [esp + 0x14]
movzx eax, byte [edi]
mov ebp, dword [esp + 0x18]
shr eax, cl
movzx ecx, byte [edx]
mov eax, dword [ebp + eax*4]
mov ebp, dword [esp + 0x40]
movzx eax, word [eax + ecx*2]
jmp 0x10158d6d
mov dword [esp + 0x38], edx
test ax, ax
jne 0x10158d0c
movzx eax, word [ebp + 0x16c]
jmp 0x10158d6d
movzx ecx, byte [esp + 0x14]
mov esi, eax
movzx eax, byte [edi]
shr eax, cl
movzx ecx, byte [edx]
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + eax*4]
movzx edx, word [eax + ecx*2]
mov ecx, 0xffff
movzx eax, word [ebp + 0x176]
sub ecx, esi
imul edx, esi
mov esi, 0xffff
imul eax, ecx
movzx ecx, byte [esp + 0x14]
add edx, 0x8000
add eax, edx
mov edx, eax
shr edx, 0x10
add edx, eax
shr edx, 0x10
movzx eax, dl
shr eax, cl
mov ecx, dword [esp + 0x28]
shr edx, 8
mov eax, dword [ecx + eax*4]
movzx eax, word [eax + edx*2]
mov edx, dword [esp + 0x38]
mov ecx, eax
shr ax, 8
movzx eax, ax
mov byte [edx], al
mov eax, 0x100
mov byte [edi], cl
add edi, 4
sub ebx, 1
jne 0x10158cc0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test ebx, ebx
je case.0x10158325.3
lea edi, [eax + 1]
mov edx, 0xffff
mov eax, 0x100
nop dword [eax + eax]
movzx ecx, byte [edi + 1]
movzx eax, ax
imul ecx, eax
movzx eax, byte [edi + 2]
add cx, ax
movzx eax, cx
test ax, ax
jne 0x10158dd2
movzx ecx, word [ebp + 0x16c]
jmp 0x10158e0f
cmp ax, dx
jae 0x10158e19
movzx esi, byte [edi - 1]
mov edx, eax
movzx eax, byte [edi]
mov ecx, 0xffff
shl esi, 8
sub ecx, edx
add esi, eax
movzx eax, word [ebp + 0x16c]
imul eax, ecx
imul esi, edx
mov edx, 0xffff
add eax, 0x8000
add eax, esi
mov ecx, eax
shr ecx, 0x10
add ecx, eax
shr ecx, 0x10
mov eax, ecx
mov byte [edi], cl
shr eax, 8
mov byte [edi - 1], al
add edi, 4
mov eax, 0x100
sub ebx, 1
jne 0x10158db0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x40]
cmp byte [ecx + 9], 8
jne 0x101590c4
mov ecx, esi
test ecx, ecx
je 0x10158fc9
test edx, edx
je 0x10158fc9
test edi, edi
je 0x10158fc9
test ebx, ebx
je case.0x10158325.3
lea esi, [eax + 1]
mov al, byte [esi + 2]
cmp al, 0xff
jne 0x10158e8c
movzx eax, byte [esi - 1]
movzx eax, byte [eax + edi]
mov byte [esi - 1], al
movzx eax, byte [esi]
movzx eax, byte [eax + edi]
mov byte [esi], al
movzx eax, byte [esi + 1]
mov cl, byte [eax + edi]
jmp 0x10158fae
test al, al
jne 0x10158eae
movzx eax, byte [ebp + 0x166]
mov cl, byte [ebp + 0x16a]
mov byte [esi - 1], al
movzx eax, byte [ebp + 0x168]
mov byte [esi], al
jmp 0x10158fae
movzx edx, al
mov eax, 0xff
sub eax, edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x40], eax
movzx eax, byte [esi - 1]
movzx eax, byte [eax + ecx]
movzx ecx, dx
mov edx, eax
movzx eax, word [ebp + 0x170]
imul edx, ecx
mov ecx, dword [esp + 0x40]
movzx ecx, cx
imul ecx, eax
mov eax, 0x80
add dx, cx
add dx, ax
movzx eax, dx
mov ecx, eax
shr ecx, 8
add ecx, eax
shr ecx, 8
cmp dword [esp + 0x24], 0
jne 0x10158f0a
movzx eax, cl
mov ecx, dword [esp + 0x2c]
mov cl, byte [eax + ecx]
movzx eax, byte [esi]
mov byte [esi - 1], cl
mov ecx, dword [esp + 0x20]
movzx edx, byte [eax + ecx]
mov ecx, dword [esp + 0x38]
movzx eax, word [ebp + 0x172]
movzx ecx, cx
imul edx, ecx
mov ecx, dword [esp + 0x40]
movzx ecx, cx
imul ecx, eax
mov eax, 0x80
add dx, cx
add dx, ax
movzx eax, dx
mov ecx, eax
shr ecx, 8
add ecx, eax
shr ecx, 8
cmp dword [esp + 0x24], 0
jne 0x10158f5c
movzx eax, cl
mov ecx, dword [esp + 0x2c]
mov cl, byte [eax + ecx]
movzx eax, byte [esi + 1]
mov byte [esi], cl
mov ecx, dword [esp + 0x20]
movzx edx, byte [eax + ecx]
mov ecx, dword [esp + 0x38]
movzx eax, word [ebp + 0x174]
movzx ecx, cx
imul edx, ecx
mov ecx, dword [esp + 0x40]
movzx ecx, cx
imul ecx, eax
mov eax, 0x80
add dx, cx
add dx, ax
movzx eax, dx
mov ecx, eax
shr ecx, 8
add ecx, eax
shr ecx, 8
cmp dword [esp + 0x24], 0
jne 0x10158fae
mov edx, dword [esp + 0x2c]
movzx eax, cl
mov cl, byte [eax + edx]
mov byte [esi + 1], cl
add esi, 4
mov ecx, dword [esp + 0x20]
sub ebx, 1
jne 0x10158e65
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test ebx, ebx
je case.0x10158325.3
lea ecx, [eax + 1]
mov dword [esp + 0x40], ecx
mov al, byte [ecx + 2]
test al, al
jne 0x10159001
movzx eax, byte [ebp + 0x166]
mov byte [ecx - 1], al
movzx eax, byte [ebp + 0x168]
mov byte [ecx], al
movzx eax, byte [ebp + 0x16a]
mov byte [ecx + 1], al
jmp 0x101590ac
cmp al, 0xff
jae 0x101590ac
movzx edx, byte [ecx - 1]
mov edi, 0xff
movzx esi, al
movzx eax, word [ebp + 0x166]
sub edi, esi
imul edx, esi
movzx ecx, di
imul ecx, eax
mov eax, 0x80
add dx, cx
add dx, ax
movzx eax, dx
mov ecx, eax
shr ecx, 8
add ecx, eax
mov eax, dword [esp + 0x40]
shr ecx, 8
movzx edx, byte [eax]
mov byte [eax - 1], cl
movzx eax, word [ebp + 0x168]
imul edx, esi
movzx ecx, di
imul ecx, eax
mov eax, 0x80
add dx, cx
add dx, ax
movzx eax, dx
mov ecx, eax
shr ecx, 8
add ecx, eax
mov eax, dword [esp + 0x40]
shr ecx, 8
movzx edx, byte [eax + 1]
mov byte [eax], cl
movzx eax, word [ebp + 0x16a]
imul edx, esi
movzx ecx, di
imul ecx, eax
mov eax, 0x80
add dx, cx
add dx, ax
movzx eax, dx
mov ecx, eax
shr ecx, 8
add ecx, eax
mov eax, dword [esp + 0x40]
shr ecx, 8
mov byte [eax + 1], cl
mov ecx, eax
add ecx, 4
mov dword [esp + 0x40], ecx
sub ebx, 1
jne 0x10158fd8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov edi, dword [esp + 0x18]
test edi, edi
je 0x10159330
cmp dword [esp + 0x28], 0
je 0x10159330
cmp dword [esp + 0x1c], 0
je 0x10159330
test ebx, ebx
je case.0x10158325.3
lea esi, [eax + 1]
mov edx, 0xffff
mov eax, 0x100
nop dword [eax + eax]
movzx ecx, byte [esi + 5]
movzx eax, ax
imul ecx, eax
movzx eax, byte [esi + 6]
add cx, ax
movzx ecx, cx
cmp cx, dx
jne 0x1015917d
mov eax, dword [esp + 0x14]
movzx ebx, al
movzx eax, byte [esi]
mov cl, bl
shr eax, cl
movzx ecx, byte [esi - 1]
movzx edx, byte [esi + 1]
mov eax, dword [edi + eax*4]
movzx ecx, word [eax + ecx*2]
mov eax, ecx
mov byte [esi], cl
shr eax, 8
mov cl, bl
mov byte [esi - 1], al
movzx eax, byte [esi + 2]
shr eax, cl
mov ebx, dword [esp + 0x10]
mov eax, dword [edi + eax*4]
movzx edx, word [eax + edx*2]
mov eax, edx
mov byte [esi + 2], dl
shr eax, 8
mov byte [esi + 1], al
movzx eax, byte [esi + 4]
shr eax, cl
movzx ecx, byte [esi + 3]
mov eax, dword [edi + eax*4]
movzx eax, word [eax + ecx*2]
mov ecx, eax
shr ax, 8
movzx eax, ax
jmp 0x10159308
test cx, cx
jne 0x101591ba
movzx ecx, word [ebp + 0x166]
mov eax, ecx
mov byte [esi], cl
movzx ecx, word [ebp + 0x168]
shr eax, 8
mov byte [esi - 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 1], al
movzx eax, word [ebp + 0x16a]
mov byte [esi + 2], cl
mov ecx, eax
shr ax, 8
movzx eax, ax
jmp 0x1015930d
mov eax, dword [esp + 0x14]
mov edx, ecx
mov ebx, dword [esp + 0x1c]
mov edi, 0xffff
movzx eax, al
sub edi, edx
mov dword [esp + 0x40], eax
mov cl, byte [esp + 0x40]
movzx eax, byte [esi]
shr eax, cl
movzx ecx, byte [esi - 1]
mov dword [esp + 0x38], edx
mov eax, dword [ebx + eax*4]
movzx ecx, word [eax + ecx*2]
movzx eax, word [ebp + 0x170]
imul ecx, edx
imul eax, edi
add ecx, 0x8000
add eax, ecx
mov ecx, eax
shr ecx, 0x10
add ecx, eax
shr ecx, 0x10
cmp dword [esp + 0x24], 0
jne 0x1015922d
mov edx, ecx
mov cl, byte [esp + 0x14]
movzx eax, dl
shr eax, cl
mov ecx, dword [esp + 0x28]
shr edx, 8
mov eax, dword [ecx + eax*4]
movzx ecx, word [eax + edx*2]
mov edx, dword [esp + 0x38]
mov eax, ecx
mov byte [esi], cl
mov cl, byte [esp + 0x40]
shr eax, 8
mov byte [esi - 1], al
movzx eax, byte [esi + 2]
shr eax, cl
movzx ecx, byte [esi + 1]
mov eax, dword [ebx + eax*4]
movzx ecx, word [eax + ecx*2]
movzx eax, word [ebp + 0x172]
imul ecx, edx
imul eax, edi
add ecx, 0x8000
add eax, ecx
mov ecx, eax
shr ecx, 0x10
add ecx, eax
shr ecx, 0x10
cmp dword [esp + 0x24], 0
jne 0x1015928f
mov edx, ecx
mov cl, byte [esp + 0x14]
movzx eax, dl
shr eax, cl
mov ecx, dword [esp + 0x28]
shr edx, 8
mov eax, dword [ecx + eax*4]
movzx ecx, word [eax + edx*2]
mov edx, dword [esp + 0x38]
mov eax, ecx
mov byte [esi + 2], cl
mov cl, byte [esp + 0x40]
shr eax, 8
mov byte [esi + 1], al
movzx eax, byte [esi + 4]
shr eax, cl
movzx ecx, byte [esi + 3]
mov eax, dword [ebx + eax*4]
mov ebx, dword [esp + 0x10]
movzx ecx, word [eax + ecx*2]
movzx eax, word [ebp + 0x174]
imul ecx, edx
imul eax, edi
add ecx, 0x8000
add eax, ecx
mov ecx, eax
shr ecx, 0x10
add ecx, eax
shr ecx, 0x10
cmp dword [esp + 0x24], 0
jne 0x101592f2
mov edx, ecx
mov cl, byte [esp + 0x14]
movzx eax, dl
shr eax, cl
mov ecx, dword [esp + 0x28]
shr edx, 8
mov eax, dword [ecx + eax*4]
movzx ecx, word [eax + edx*2]
mov edi, dword [esp + 0x18]
movzx eax, cx
shr cx, 8
mov dword [esp + 0x40], eax
movzx eax, cx
mov ecx, dword [esp + 0x40]
mov edx, 0xffff
mov byte [esi + 3], al
mov eax, 0x100
mov byte [esi + 4], cl
add esi, 8
sub ebx, 1
mov dword [esp + 0x10], ebx
jne 0x10159100
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test ebx, ebx
je case.0x10158325.3
lea edi, [eax + 1]
mov edx, 0xffff
mov eax, 0x100
movzx ecx, byte [edi + 5]
movzx eax, ax
imul ecx, eax
movzx eax, byte [edi + 6]
add cx, ax
movzx eax, cx
test ax, ax
jne 0x1015938d
movzx ecx, word [ebp + 0x166]
mov eax, ecx
mov byte [edi], cl
movzx ecx, word [ebp + 0x168]
shr eax, 8
mov byte [edi - 1], al
mov eax, ecx
shr eax, 8
mov byte [edi + 2], cl
movzx ecx, word [ebp + 0x16a]
mov byte [edi + 1], al
jmp 0x1015943c
cmp ax, dx
jae 0x10159447
movzx ecx, byte [edi - 1]
mov edx, eax
movzx eax, byte [edi]
mov esi, 0xffff
shl ecx, 8
sub esi, edx
add ecx, eax
movzx eax, word [ebp + 0x166]
imul ecx, edx
imul eax, esi
add ecx, 0x8000
add eax, ecx
mov ecx, eax
shr ecx, 0x10
add ecx, eax
shr ecx, 0x10
mov eax, ecx
mov byte [edi], cl
movzx ecx, byte [edi + 1]
shl ecx, 8
shr eax, 8
mov byte [edi - 1], al
movzx eax, byte [edi + 2]
add ecx, eax
movzx eax, word [ebp + 0x168]
imul ecx, edx
imul eax, esi
add ecx, 0x8000
add eax, ecx
mov ecx, eax
shr ecx, 0x10
add ecx, eax
shr ecx, 0x10
mov eax, ecx
mov byte [edi + 2], cl
movzx ecx, byte [edi + 3]
shr eax, 8
shl ecx, 8
mov byte [edi + 1], al
movzx eax, byte [edi + 4]
add ecx, eax
movzx eax, word [ebp + 0x16a]
imul ecx, edx
mov edx, 0xffff
imul eax, esi
add ecx, 0x8000
add eax, ecx
mov ecx, eax
shr ecx, 0x10
add ecx, eax
shr ecx, 0x10
mov eax, ecx
mov byte [edi + 4], cl
shr eax, 8
mov byte [edi + 3], al
add edi, 8
mov eax, 0x100
sub ebx, 1
jne 0x10159345
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret