Function at 0x5e2b90
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x10
cmp dword [esp + 0x1c], 0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
push ebx
mov bl, byte [esp + 0x40]
push ebp
mov ebp, dword [esp + 0x38]
push esi
mov esi, dword [eax]
push edi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x10], esi
je 0x5e3b3b
mov al, byte [eax + 8]
test al, 4
je 0x5e2bd6
cmp al, 3
je 0x5e3b3b
cmp dword [esp + 0x28], 0
je 0x5e3b3b
movzx eax, al
cmp eax, 6
ja case.0x5e2c04.2
jmp dword [eax*4 + 0x5e3b44]
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + 9]
add eax, 0xffffffff
cmp eax, 0xf
ja case.0x5e2c04.2
movzx ecx, byte [eax + 0x5e3b78]
jmp dword [ecx*4 + 0x5e3b60]
cmp dword [esp + 0x10], 0
mov esi, edx
mov edx, 7
jbe case.0x5e2c04.2
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x14], eax
lea ecx, [ecx]
mov bl, byte [esi]
mov cl, dl
mov al, bl
shr al, cl
and al, 1
movzx cx, al
cmp cx, word [ebp + 8]
jne 0x5e2c61
mov ecx, 7
sub ecx, edx
mov eax, 0x7f7f
sar eax, cl
mov ecx, edx
and al, bl
mov byte [esi], al
mov bl, byte [edi + 8]
shl bl, cl
or bl, al
mov byte [esi], bl
test edx, edx
jne 0x5e2c6f
mov edx, 7
add esi, 1
jmp 0x5e2c72
sub edx, 1
sub dword [esp + 0x14], 1
jne 0x5e2c30
jmp case.0x5e2c04.2
cmp dword [esp + 0x34], 0
mov esi, edx
mov edx, 6
je 0x5e2d2f
cmp dword [esp + 0x10], 0
jbe case.0x5e2c04.2
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov bl, byte [esi]
mov cl, dl
mov al, bl
shr al, cl
and al, 3
movzx cx, al
cmp cx, word [edi + 8]
jne 0x5e2cd6
mov ecx, 6
sub ecx, edx
mov eax, 0x3f3f
sar eax, cl
mov ecx, dword [esp + 0x2c]
and al, bl
mov byte [esi], al
mov bl, byte [ecx + 8]
mov ecx, edx
shl bl, cl
jmp 0x5e2d0c
movzx eax, al
lea ecx, [eax*4]
or ecx, eax
add ecx, ecx
add ecx, ecx
or ecx, eax
add ecx, ecx
add ecx, ecx
or ecx, eax
mov eax, dword [esp + 0x34]
mov al, byte [ecx + eax]
mov ecx, 6
sub ecx, edx
mov ebx, 0x3f3f
sar ebx, cl
shr al, 6
mov ecx, edx
and bl, byte [esi]
shl al, cl
or bl, al
test edx, edx
mov byte [esi], bl
jne 0x5e2d1e
mov edx, 6
add esi, 1
jmp 0x5e2d21
sub edx, 2
sub ebp, 1
jne 0x5e2ca3
jmp case.0x5e2c04.2
cmp dword [esp + 0x10], 0
jbe case.0x5e2c04.2
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x14], ecx
lea ebx, [ebx]
mov bl, byte [esi]
mov cl, dl
mov al, bl
shr al, cl
and al, 3
movzx cx, al
cmp cx, word [ebp + 8]
jne 0x5e2d81
mov ecx, 6
sub ecx, edx
mov eax, 0x3f3f
sar eax, cl
mov ecx, edx
and al, bl
mov byte [esi], al
mov bl, byte [edi + 8]
shl bl, cl
or bl, al
mov byte [esi], bl
test edx, edx
jne 0x5e2d8f
mov edx, 6
add esi, 1
jmp 0x5e2d92
sub edx, 2
sub dword [esp + 0x14], 1
jne 0x5e2d50
jmp case.0x5e2c04.2
cmp dword [esp + 0x34], 0
mov esi, edx
mov edx, 4
je 0x5e2e3d
cmp dword [esp + 0x10], 0
jbe case.0x5e2c04.2
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov bl, byte [esi]
mov cl, dl
mov al, bl
shr al, cl
and al, 0xf
movzx cx, al
cmp cx, word [edi + 8]
jne 0x5e2df6
mov ecx, 4
sub ecx, edx
mov eax, 0xf0f
sar eax, cl
mov ecx, dword [esp + 0x2c]
and al, bl
mov byte [esi], al
mov bl, byte [ecx + 8]
mov ecx, edx
shl bl, cl
jmp 0x5e2e1e
movzx eax, al
mov ecx, eax
shl ecx, 4
or ecx, eax
mov eax, dword [esp + 0x34]
mov al, byte [ecx + eax]
mov ecx, 4
sub ecx, edx
mov ebx, 0xf0f
sar ebx, cl
shr al, 4
mov ecx, edx
and bl, byte [esi]
shl al, cl
or bl, al
test edx, edx
mov byte [esi], bl
jne 0x5e2e30
mov edx, 4
add esi, 1
jmp 0x5e2e33
sub edx, 4
sub ebp, 1
jne 0x5e2dc3
jmp case.0x5e2c04.2
cmp dword [esp + 0x10], 0
jbe case.0x5e2c04.2
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x14], ecx
mov bl, byte [esi]
mov cl, dl
mov al, bl
shr al, cl
and al, 0xf
movzx cx, al
cmp cx, word [ebp + 8]
jne 0x5e2e89
mov ecx, 4
sub ecx, edx
mov eax, 0xf0f
sar eax, cl
mov ecx, edx
and al, bl
mov byte [esi], al
mov bl, byte [edi + 8]
shl bl, cl
or bl, al
mov byte [esi], bl
test edx, edx
jne 0x5e2e97
mov edx, 4
add esi, 1
jmp 0x5e2e9a
sub edx, 4
sub dword [esp + 0x14], 1
jne 0x5e2e58
jmp case.0x5e2c04.2
cmp dword [esp + 0x34], 0
je 0x5e2ee9
test esi, esi
jbe case.0x5e2c04.2
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov ecx, esi
mov esi, dword [esp + 0x34]
mov al, byte [edx]
movzx bx, al
cmp bx, word [edi + 8]
jne 0x5e2ed4
mov al, byte [ebp + 8]
jmp 0x5e2eda
movzx eax, al
mov al, byte [eax + esi]
mov byte [edx], al
add edx, 1
sub ecx, 1
jne 0x5e2ec3
jmp case.0x5e2c04.2
test esi, esi
jbe case.0x5e2c04.2
mov edi, dword [esp + 0x28]
mov eax, esi
mov esi, dword [esp + 0x2c]
jmp 0x5e2f00
movzx cx, byte [edx]
cmp cx, word [edi + 8]
jne 0x5e2f0f
mov cl, byte [esi + 8]
mov byte [edx], cl
add edx, 1
sub eax, 1
jne 0x5e2f00
jmp case.0x5e2c04.2
test ebp, ebp
je 0x5e2f82
test esi, esi
jbe case.0x5e2c04.2
mov eax, esi
mov dword [esp + 0x14], eax
mov edi, edi
mov al, byte [edx]
mov cl, byte [edx + 1]
movzx si, al
movzx di, cl
shl si, 8
add si, di
mov edi, dword [esp + 0x28]
cmp si, word [edi + 8]
jne 0x5e2f5c
mov esi, dword [esp + 0x2c]
mov cl, byte [esi + 9]
mov byte [edx], cl
mov al, byte [esi + 8]
jmp 0x5e2f70
movzx esi, cl
mov cl, bl
shr esi, cl
movzx ecx, al
mov eax, dword [ebp + esi*4]
movzx eax, word [eax + ecx*2]
mov byte [edx], ah
mov byte [edx + 1], al
add edx, 2
sub dword [esp + 0x14], 1
jne 0x5e2f30
jmp case.0x5e2c04.2
test esi, esi
jbe case.0x5e2c04.2
mov edi, dword [esp + 0x28]
mov eax, esi
mov esi, dword [esp + 0x2c]
jmp 0x5e2fa0
movzx cx, byte [edx]
movzx bx, byte [edx + 1]
shl cx, 8
add cx, bx
cmp cx, word [edi + 8]
jne 0x5e2fc3
movzx ecx, byte [esi + 9]
mov byte [edx], cl
movzx ecx, byte [esi + 8]
mov byte [edx + 1], cl
add edx, 2
sub eax, 1
jne 0x5e2fa0
jmp case.0x5e2c04.2
mov eax, dword [esp + 0x24]
cmp byte [eax + 9], 8
jne 0x5e30c1
cmp dword [esp + 0x34], 0
je 0x5e3061
test esi, esi
jbe case.0x5e2c04.2
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov ecx, esi
mov esi, dword [esp + 0x34]
add edx, 2
mov edi, edi
mov al, byte [edx - 2]
movzx bx, al
cmp bx, word [edi + 2]
jne 0x5e3036
movzx bx, byte [edx - 1]
cmp bx, word [edi + 4]
jne 0x5e3036
movzx bx, byte [edx]
cmp bx, word [edi + 6]
jne 0x5e3036
movzx eax, byte [ebp + 2]
mov byte [edx - 2], al
movzx eax, byte [ebp + 4]
mov byte [edx - 1], al
movzx eax, byte [ebp + 6]
jmp 0x5e3052
movzx eax, al
movzx eax, byte [eax + esi]
mov byte [edx - 2], al
movzx eax, byte [edx - 1]
movzx eax, byte [eax + esi]
mov byte [edx - 1], al
movzx eax, byte [edx]
movzx eax, byte [eax + esi]
mov byte [edx], al
add edx, 3
sub ecx, 1
jne 0x5e3000
jmp case.0x5e2c04.2
test esi, esi
jbe case.0x5e2c04.2
mov edi, dword [esp + 0x2c]
mov eax, esi
mov esi, dword [esp + 0x28]
add edx, 2
jmp 0x5e3080
movzx cx, byte [edx - 2]
cmp cx, word [esi + 2]
jne 0x5e30b4
movzx cx, byte [edx - 1]
cmp cx, word [esi + 4]
jne 0x5e30b4
movzx cx, byte [edx]
cmp cx, word [esi + 6]
jne 0x5e30b4
movzx ecx, byte [edi + 2]
mov byte [edx - 2], cl
movzx ecx, byte [edi + 4]
mov byte [edx - 1], cl
movzx ecx, byte [edi + 6]
mov byte [edx], cl
add edx, 3
sub eax, 1
jne 0x5e3080
jmp case.0x5e2c04.2
test ebp, ebp
je 0x5e31c0
test esi, esi
jbe case.0x5e2c04.2
lea eax, [edx + 2]
mov edx, esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x14], edx
mov edi, edi
mov dl, byte [eax - 2]
mov cl, byte [eax - 1]
movzx dx, dl
movzx di, cl
shl dx, 8
add dx, di
mov edi, dword [esp + 0x28]
cmp dx, word [edi + 2]
jne 0x5e315f
movzx dx, byte [eax]
movzx di, byte [eax + 1]
shl dx, 8
add dx, di
mov edi, dword [esp + 0x28]
cmp dx, word [edi + 4]
jne 0x5e315f
movzx dx, byte [eax + 2]
movzx di, byte [eax + 3]
shl dx, 8
add dx, di
mov edi, dword [esp + 0x28]
cmp dx, word [edi + 6]
jne 0x5e315f
movzx ecx, byte [esi + 3]
mov byte [eax - 2], cl
movzx edx, byte [esi + 2]
mov byte [eax - 1], dl
movzx ecx, byte [esi + 5]
mov byte [eax], cl
movzx edx, byte [esi + 4]
mov byte [eax + 1], dl
movzx ecx, byte [esi + 7]
mov byte [eax + 2], cl
movzx edx, byte [esi + 6]
mov byte [eax + 3], dl
jmp 0x5e31ad
movzx edi, cl
movzx edx, bl
mov cl, dl
shr edi, cl
movzx ecx, byte [eax - 2]
mov edi, dword [ebp + edi*4]
movzx ecx, word [edi + ecx*2]
movzx edi, byte [eax + 1]
mov byte [eax - 1], cl
mov cl, dl
shr edi, cl
mov byte [eax - 2], ch
movzx ecx, byte [eax]
mov edi, dword [ebp + edi*4]
movzx ecx, word [edi + ecx*2]
movzx edi, byte [eax + 3]
mov byte [eax + 1], cl
mov cl, dl
movzx edx, byte [eax + 2]
shr edi, cl
mov byte [eax], ch
mov ecx, dword [ebp + edi*4]
movzx ecx, word [ecx + edx*2]
mov byte [eax + 2], ch
mov byte [eax + 3], cl
add eax, 6
sub dword [esp + 0x14], 1
jne 0x5e30e0
jmp case.0x5e2c04.2
test esi, esi
jbe case.0x5e2c04.2
mov edi, dword [esp + 0x28]
mov eax, esi
mov esi, dword [esp + 0x2c]
add edx, 2
jmp 0x5e31e0
movzx cx, byte [edx - 2]
movzx bx, byte [edx - 1]
shl cx, 8
add cx, bx
cmp cx, word [edi + 2]
jne 0x5e324d
movzx cx, byte [edx]
movzx bx, byte [edx + 1]
shl cx, 8
add cx, bx
cmp cx, word [edi + 4]
jne 0x5e324d
movzx cx, byte [edx + 2]
movzx bx, byte [edx + 3]
shl cx, 8
add cx, bx
cmp cx, word [edi + 6]
jne 0x5e324d
movzx ecx, byte [esi + 3]
mov byte [edx - 2], cl
movzx ecx, byte [esi + 2]
mov byte [edx - 1], cl
movzx ecx, byte [esi + 5]
mov byte [edx], cl
movzx ecx, byte [esi + 4]
mov byte [edx + 1], cl
movzx ecx, byte [esi + 7]
mov byte [edx + 2], cl
movzx ecx, byte [esi + 6]
mov byte [edx + 3], cl
add edx, 6
sub eax, 1
jne 0x5e31e0
jmp case.0x5e2c04.2
mov eax, dword [esp + 0x24]
cmp byte [eax + 9], 8
jne 0x5e338b
cmp dword [esp + 0x3c], 0
je 0x5e331e
cmp dword [esp + 0x38], 0
je 0x5e331e
cmp dword [esp + 0x34], 0
je 0x5e331e
cmp dword [esp + 0x10], 0
mov ecx, edx
mov esi, edx
jbe case.0x5e2c04.2
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x14], edx
movzx ax, byte [ecx + 1]
movzx eax, ax
cmp ax, 0xff
jne 0x5e32c0
movzx edx, byte [ecx]
mov eax, dword [esp + 0x34]
mov dl, byte [edx + eax]
mov byte [esi], dl
jmp 0x5e330c
test ax, ax
jne 0x5e32d0
mov eax, dword [esp + 0x2c]
mov dl, byte [eax + 8]
mov byte [esi], dl
jmp 0x5e330c
movzx ebx, byte [ecx]
movzx bx, byte [ebx + ebp]
imul bx, ax
mov edx, 0xff
sub edx, eax
imul dx, word [edi + 8]
add dx, bx
add dx, 0x80
movzx eax, dx
movzx eax, ax
mov edx, eax
shr edx, 8
add edx, eax
sar edx, 8
movzx eax, dl
mov edx, dword [esp + 0x38]
mov al, byte [eax + edx]
mov byte [esi], al
add ecx, 2
add esi, 1
sub dword [esp + 0x14], 1
jne 0x5e32a4
jmp case.0x5e2c04.2
cmp dword [esp + 0x10], 0
mov ecx, edx
mov esi, edx
jbe case.0x5e2c04.2
mov ebp, dword [esp + 0x10]
mov al, byte [ecx + 1]
cmp al, 0xff
jne 0x5e333c
mov dl, byte [ecx]
jmp 0x5e3379
test al, al
jne 0x5e3349
mov eax, dword [esp + 0x2c]
mov dl, byte [eax + 8]
jmp 0x5e3379
movzx bx, byte [ecx]
movzx ax, al
mov edx, 0xff
imul bx, ax
sub edx, eax
imul dx, word [edi + 8]
add dx, bx
add dx, 0x80
movzx eax, dx
movzx eax, ax
mov edx, eax
shr edx, 8
add edx, eax
sar edx, 8
mov byte [esi], dl
add ecx, 2
add esi, 1
sub ebp, 1
jne 0x5e3331
jmp case.0x5e2c04.2
test ebp, ebp
je 0x5e3479
test ecx, ecx
je 0x5e3479
cmp dword [esp + 0x48], 0
je 0x5e3479
cmp dword [esp + 0x10], 0
mov esi, edx
jbe case.0x5e2c04.2
mov eax, dword [esp + 0x10]
add edx, 1
mov dword [esp + 0x14], eax
mov edi, edi
movzx cx, byte [edx + 1]
movzx ax, byte [edx + 2]
shl cx, 8
add cx, ax
movzx eax, cx
cmp ax, 0xffff
jne 0x5e33ef
movzx eax, byte [edx]
mov cl, bl
shr eax, cl
movzx ecx, byte [edx - 1]
mov eax, dword [ebp + eax*4]
movzx eax, word [eax + ecx*2]
jmp 0x5e345e
test ax, ax
jne 0x5e3402
mov edi, dword [esp + 0x2c]
mov cl, byte [edi + 9]
mov byte [esi], cl
mov al, byte [edi + 8]
jmp 0x5e3460
movzx edi, byte [edx]
mov ebp, dword [esp + 0x48]
mov cl, bl
shr edi, cl
movzx ecx, byte [edx - 1]
mov edi, dword [ebp + edi*4]
movzx ecx, word [edi + ecx*2]
mov edi, dword [esp + 0x30]
movzx edi, word [edi + 8]
movzx eax, ax
imul ecx, eax
mov ebp, 0xffff
sub ebp, eax
imul edi, ebp
mov ebp, dword [esp + 0x40]
lea ecx, [ecx + edi + 0x8000]
mov eax, ecx
shr eax, 0x10
add eax, ecx
shr eax, 0x10
movzx eax, ax
movzx edi, al
mov cl, bl
shr edi, cl
mov ecx, dword [esp + 0x44]
shr eax, 8
mov ecx, dword [ecx + edi*4]
movzx eax, word [ecx + eax*2]
mov byte [esi], ah
mov byte [esi + 1], al
add edx, 4
add esi, 2
sub dword [esp + 0x14], 1
jne 0x5e33c0
jmp case.0x5e2c04.2
test esi, esi
jbe case.0x5e2c04.2
mov ebp, esi
mov esi, dword [esp + 0x2c]
lea ecx, [edx + 3]
lea ebx, [ebx]
movzx ax, byte [ecx - 1]
movzx bx, byte [ecx]
shl ax, 8
add ax, bx
movzx eax, ax
cmp ax, 0xffff
jne 0x5e34b2
mov ax, word [ecx - 3]
mov word [edx], ax
jmp 0x5e3509
test ax, ax
jne 0x5e34c3
movzx eax, byte [esi + 9]
mov byte [edx], al
movzx eax, byte [esi + 8]
jmp 0x5e3506
movzx si, byte [ecx - 3]
movzx bx, byte [ecx - 2]
movzx edi, word [edi + 8]
shl si, 8
add si, bx
movzx eax, ax
movzx esi, si
imul esi, eax
mov ebx, 0xffff
sub ebx, eax
imul edi, ebx
lea esi, [esi + edi + 0x8000]
mov edi, dword [esp + 0x30]
mov eax, esi
shr eax, 0x10
add eax, esi
mov esi, dword [esp + 0x2c]
shr eax, 0x10
mov byte [edx], ah
mov byte [edx + 1], al
add ecx, 4
add edx, 2
sub ebp, 1
jne 0x5e3490
jmp case.0x5e2c04.2
mov eax, dword [esp + 0x24]
cmp byte [eax + 9], 8
jne 0x5e37a2
cmp dword [esp + 0x3c], 0
je 0x5e369f
cmp dword [esp + 0x38], 0
je 0x5e369f
cmp dword [esp + 0x34], 0
je 0x5e369f
test esi, esi
jbe case.0x5e2c04.2
mov ecx, dword [esp + 0x10]
lea esi, [edx + 2]
lea ebp, [edx + 1]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x34]
lea ebx, [ebx]
mov al, byte [ebp + 2]
cmp al, 0xff
jne 0x5e359c
movzx eax, byte [ebp - 1]
movzx eax, byte [eax + ecx]
mov byte [esi - 2], al
movzx eax, byte [ebp]
movzx eax, byte [eax + ecx]
mov byte [esi - 1], al
movzx eax, byte [ebp + 1]
movzx eax, byte [eax + ecx]
mov byte [esi], al
jmp 0x5e3689
test al, al
jne 0x5e35b9
movzx eax, byte [edx + 2]
mov byte [esi - 2], al
movzx eax, byte [edx + 4]
mov byte [esi - 1], al
movzx eax, byte [edx + 6]
mov byte [esi], al
jmp 0x5e3689
movzx edi, byte [ebp - 1]
mov edx, dword [esp + 0x3c]
movzx edi, byte [edi + edx]
mov ebx, dword [esp + 0x30]
movzx ebx, word [ebx + 2]
movzx ax, al
imul di, ax
mov ecx, 0xff
sub ecx, eax
imul bx, cx
add di, bx
add di, 0x80
movzx edi, di
movzx edi, di
mov ebx, edi
shr ebx, 8
add ebx, edi
sar ebx, 8
movzx edi, bl
mov ebx, dword [esp + 0x38]
movzx ebx, byte [edi + ebx]
mov byte [esi - 2], bl
movzx edi, byte [ebp]
movzx edi, byte [edi + edx]
mov ebx, dword [esp + 0x30]
imul di, ax
movzx ebx, word [ebx + 4]
imul bx, cx
add di, bx
add di, 0x80
movzx edi, di
movzx edi, di
mov ebx, edi
shr ebx, 8
add ebx, edi
sar ebx, 8
movzx edi, bl
mov ebx, dword [esp + 0x38]
movzx ebx, byte [edi + ebx]
mov byte [esi - 1], bl
movzx edi, byte [ebp + 1]
movzx dx, byte [edi + edx]
imul dx, ax
mov eax, dword [esp + 0x30]
mov ax, word [eax + 6]
imul ax, cx
add dx, ax
add dx, 0x80
movzx eax, dx
movzx eax, ax
mov ecx, eax
shr ecx, 8
add ecx, eax
mov eax, dword [esp + 0x38]
sar ecx, 8
movzx edx, cl
mov cl, byte [edx + eax]
mov edx, dword [esp + 0x2c]
mov byte [esi], cl
mov ecx, dword [esp + 0x34]
add ebp, 4
add esi, 3
sub dword [esp + 0x14], 1
jne 0x5e3570
jmp case.0x5e2c04.2
test esi, esi
jbe case.0x5e2c04.2
mov ecx, dword [esp + 0x2c]
lea esi, [edx + 2]
lea ebp, [edx + 1]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x14], edx
lea esp, [esp]
mov al, byte [ebp + 2]
cmp al, 0xff
jne 0x5e36df
movzx eax, byte [ebp - 1]
mov byte [esi - 2], al
mov dl, byte [ebp]
mov byte [esi - 1], dl
movzx eax, byte [ebp + 1]
mov byte [esi], al
jmp 0x5e378c
test al, al
jne 0x5e36fb
movzx edx, byte [ecx + 2]
mov byte [esi - 2], dl
mov al, byte [ecx + 4]
mov byte [esi - 1], al
movzx edx, byte [ecx + 6]
mov byte [esi], dl
jmp 0x5e378c
mov edx, dword [esp + 0x2c]
movzx edi, byte [ebp - 1]
movzx ebx, word [edx + 2]
movzx ax, al
imul di, ax
mov ecx, 0xff
sub ecx, eax
imul bx, cx
add di, bx
add di, 0x80
movzx edi, di
movzx edi, di
mov ebx, edi
shr ebx, 8
add ebx, edi
sar ebx, 8
mov byte [esi - 2], bl
movzx edi, word [edx + 4]
movzx ebx, byte [ebp]
imul di, cx
imul bx, ax
add di, bx
add di, 0x80
movzx edi, di
movzx edi, di
mov ebx, edi
shr ebx, 8
add ebx, edi
sar ebx, 8
mov byte [esi - 1], bl
movzx edi, byte [ebp + 1]
imul di, ax
mov ax, word [edx + 6]
imul ax, cx
add di, ax
add di, 0x80
movzx eax, di
movzx eax, ax
mov ecx, eax
shr ecx, 8
add ecx, eax
sar ecx, 8
mov byte [esi], cl
mov ecx, edx
add ebp, 4
add esi, 3
sub dword [esp + 0x14], 1
jne 0x5e36c0
jmp case.0x5e2c04.2
test ebp, ebp
je 0x5e39c2
test ecx, ecx
je 0x5e39c2
cmp dword [esp + 0x48], 0
je 0x5e39c2
test esi, esi
jbe case.0x5e2c04.2
mov ecx, esi
lea eax, [edx + 2]
add edx, 1
mov dword [esp + 0x1c], ecx
movzx cx, byte [edx + 5]
movzx si, byte [edx + 6]
shl cx, 8
add cx, si
movzx esi, cx
cmp si, 0xffff
jne 0x5e3842
movzx esi, byte [edx]
movzx ecx, bl
shr esi, cl
mov dword [esp + 0x14], ecx
movzx ecx, byte [edx - 1]
mov esi, dword [ebp + esi*4]
movzx ecx, word [esi + ecx*2]
mov byte [eax - 2], ch
mov byte [eax - 1], cl
movzx esi, byte [edx + 2]
movzx ecx, byte [esp + 0x14]
shr esi, cl
movzx ecx, byte [edx + 1]
mov esi, dword [ebp + esi*4]
movzx ecx, word [esi + ecx*2]
mov byte [eax], ch
mov byte [eax + 1], cl
movzx ecx, byte [esp + 0x14]
movzx esi, byte [edx + 4]
shr esi, cl
movzx ecx, byte [edx + 3]
mov esi, dword [ebp + esi*4]
movzx ecx, word [esi + ecx*2]
jmp 0x5e39a6
test si, si
jne 0x5e388a
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 3]
mov byte [eax - 2], cl
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 2]
mov byte [eax - 1], cl
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 5]
mov byte [eax], cl
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 4]
mov byte [eax + 1], cl
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 7]
mov byte [eax + 2], cl
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 6]
jmp 0x5e39a9
movzx edi, si
movzx esi, byte [edx]
movzx ecx, bl
shr esi, cl
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x14], ecx
movzx ecx, byte [edx - 1]
mov esi, dword [ebx + esi*4]
movzx ecx, word [esi + ecx*2]
mov esi, dword [esp + 0x2c]
imul ecx, edi
movzx esi, word [esi + 2]
mov ebp, 0xffff
sub ebp, edi
imul esi, ebp
lea ecx, [ecx + esi + 0x8000]
mov esi, ecx
shr esi, 0x10
add esi, ecx
movzx ecx, word [esp + 0x4c]
shr esi, 0x10
movzx ebx, si
mov dword [esp + 0x18], ecx
movzx esi, bl
shr esi, cl
mov ecx, dword [esp + 0x44]
shr ebx, 8
mov ecx, dword [ecx + esi*4]
movzx ecx, word [ecx + ebx*2]
mov ebx, dword [esp + 0x48]
mov byte [eax - 2], ch
mov byte [eax - 1], cl
movzx esi, byte [edx + 2]
movzx ecx, byte [esp + 0x14]
shr esi, cl
movzx ecx, byte [edx + 1]
mov esi, dword [ebx + esi*4]
movzx ecx, word [esi + ecx*2]
mov esi, dword [esp + 0x2c]
imul ecx, edi
movzx esi, word [esi + 4]
imul esi, ebp
lea ecx, [ecx + esi + 0x8000]
mov esi, ecx
shr esi, 0x10
add esi, ecx
mov ecx, dword [esp + 0x18]
shr esi, 0x10
movzx ebx, si
movzx esi, bl
shr esi, cl
mov ecx, dword [esp + 0x44]
shr ebx, 8
mov ecx, dword [ecx + esi*4]
movzx ecx, word [ecx + ebx*2]
mov ebx, dword [esp + 0x48]
mov byte [eax], ch
mov byte [eax + 1], cl
movzx ecx, byte [esp + 0x14]
movzx esi, byte [edx + 4]
shr esi, cl
movzx ecx, byte [edx + 3]
mov esi, dword [ebx + esi*4]
movzx ecx, word [esi + ecx*2]
mov esi, dword [esp + 0x2c]
imul ecx, edi
movzx esi, word [esi + 6]
imul esi, ebp
lea ecx, [ecx + esi + 0x8000]
mov esi, ecx
shr esi, 0x10
add esi, ecx
mov ecx, dword [esp + 0x18]
shr esi, 0x10
movzx ebx, si
movzx esi, bl
shr esi, cl
mov ecx, dword [esp + 0x44]
shr ebx, 8
mov ecx, dword [ecx + esi*4]
movzx ecx, word [ecx + ebx*2]
mov ebp, dword [esp + 0x40]
mov bl, byte [esp + 0x4c]
mov byte [eax + 2], ch
mov byte [eax + 3], cl
add edx, 8
add eax, 6
sub dword [esp + 0x1c], 1
jne 0x5e37d1
jmp case.0x5e2c04.2
test esi, esi
jbe case.0x5e2c04.2
lea eax, [edx + 2]
lea ecx, [edx + 7]
mov edx, esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x1c], edx
lea ebx, [ebx]
movzx dx, byte [ecx - 1]
movzx di, byte [ecx]
shl dx, 8
add dx, di
movzx edx, dx
cmp dx, 0xffff
jne 0x5e3a0d
mov edx, dword [ecx - 7]
mov dword [eax - 2], edx
mov dx, word [ecx - 3]
mov word [eax + 2], dx
jmp 0x5e3afa
test dx, dx
jne 0x5e3a3d
movzx edx, byte [esi + 3]
mov byte [eax - 2], dl
movzx edx, byte [esi + 2]
mov byte [eax - 1], dl
movzx edx, byte [esi + 5]
mov byte [eax], dl
movzx edx, byte [esi + 4]
mov byte [eax + 1], dl
movzx edx, byte [esi + 7]
mov byte [eax + 2], dl
movzx edx, byte [esi + 6]
jmp 0x5e3af7
movzx esi, byte [ecx - 5]
movzx edi, byte [ecx - 4]
shl si, 8
add si, di
movzx edi, byte [ecx - 2]
movzx esi, si
mov dword [esp + 0x18], esi
movzx esi, byte [ecx - 3]
shl si, 8
add si, di
movzx edi, byte [ecx - 6]
movzx esi, si
mov dword [esp + 0x14], esi
movzx esi, dx
movzx dx, byte [ecx - 7]
shl dx, 8
add dx, di
mov edi, dword [esp + 0x2c]
movzx ebp, word [edi + 2]
movzx edx, dx
imul edx, esi
mov ebx, 0xffff
sub ebx, esi
imul ebp, ebx
lea ebp, [edx + ebp + 0x8000]
mov edx, ebp
shr edx, 0x10
add edx, ebp
movzx ebp, word [esp + 0x18]
shr edx, 0x10
imul ebp, esi
mov byte [eax - 2], dh
mov byte [eax - 1], dl
movzx edx, word [edi + 4]
imul edx, ebx
lea ebp, [edx + ebp + 0x8000]
mov edx, ebp
shr edx, 0x10
add edx, ebp
shr edx, 0x10
mov byte [eax], dh
mov byte [eax + 1], dl
movzx edx, word [edi + 6]
movzx edi, word [esp + 0x14]
imul edx, ebx
imul edi, esi
lea esi, [edx + edi + 0x8000]
mov edx, esi
shr edx, 0x10
add edx, esi
mov esi, dword [esp + 0x2c]
shr edx, 0x10
mov byte [eax + 2], dh
mov byte [eax + 3], dl
add ecx, 8
add eax, 6
sub dword [esp + 0x1c], 1
jne 0x5e39e0
mov edx, dword [esp + 0x24]
mov al, byte [edx + 8]
test al, 4
je 0x5e3b3b
add byte [edx + 0xa], 0xff
mov cl, byte [edx + 0xa]
and al, 0xfb
mov byte [edx + 8], al
mov al, byte [edx + 9]
imul cl
mov byte [edx + 0xb], al
movzx eax, al
imul eax, dword [esp + 0x10]
add eax, 7
shr eax, 3
mov dword [edx + 4], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret