Function at 0x457300
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 + 0x28]
push esi
mov esi, dword [eax]
push edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x10], esi
je 0x4582b1
mov al, byte [eax + 8]
test al, 4
je 0x457346
cmp al, 3
je 0x4582b1
cmp dword [esp + 0x28], 0
je 0x4582b1
movzx eax, al
cmp eax, 6
ja case.0x457374.2
jmp dword [eax*4 + 0x4582bc]
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + 9]
add eax, 0xffffffff
cmp eax, 0xf
ja case.0x457374.2
movzx ecx, byte [eax + 0x4582f0]
jmp dword [ecx*4 + 0x4582d8]
cmp dword [esp + 0x10], 0
mov esi, edx
mov edx, 7
jbe case.0x457374.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 0x4573d1
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 0x4573df
mov edx, 7
add esi, 1
jmp 0x4573e2
sub edx, 1
sub dword [esp + 0x14], 1
jne 0x4573a0
jmp case.0x457374.2
cmp dword [esp + 0x34], 0
mov esi, edx
mov edx, 6
je 0x45749f
cmp dword [esp + 0x10], 0
jbe case.0x457374.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 0x457446
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 0x45747c
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 0x45748e
mov edx, 6
add esi, 1
jmp 0x457491
sub edx, 2
sub ebp, 1
jne 0x457413
jmp case.0x457374.2
cmp dword [esp + 0x10], 0
jbe case.0x457374.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 0x4574f1
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 0x4574ff
mov edx, 6
add esi, 1
jmp 0x457502
sub edx, 2
sub dword [esp + 0x14], 1
jne 0x4574c0
jmp case.0x457374.2
cmp dword [esp + 0x34], 0
mov esi, edx
mov edx, 4
je 0x4575ad
cmp dword [esp + 0x10], 0
jbe case.0x457374.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 0x457566
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 0x45758e
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 0x4575a0
mov edx, 4
add esi, 1
jmp 0x4575a3
sub edx, 4
sub ebp, 1
jne 0x457533
jmp case.0x457374.2
cmp dword [esp + 0x10], 0
jbe case.0x457374.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 0x4575f9
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 0x457607
mov edx, 4
add esi, 1
jmp 0x45760a
sub edx, 4
sub dword [esp + 0x14], 1
jne 0x4575c8
jmp case.0x457374.2
cmp dword [esp + 0x34], 0
je 0x457659
test esi, esi
jbe case.0x457374.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 0x457644
mov al, byte [ebp + 8]
jmp 0x45764a
movzx eax, al
mov al, byte [eax + esi]
mov byte [edx], al
add edx, 1
sub ecx, 1
jne 0x457633
jmp case.0x457374.2
test esi, esi
jbe case.0x457374.2
mov edi, dword [esp + 0x28]
mov eax, esi
mov esi, dword [esp + 0x2c]
jmp 0x457670
movzx cx, byte [edx]
cmp cx, word [edi + 8]
jne 0x45767f
mov cl, byte [esi + 8]
mov byte [edx], cl
add edx, 1
sub eax, 1
jne 0x457670
jmp case.0x457374.2
test edi, edi
je 0x4576f1
test esi, esi
jbe case.0x457374.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 bp, cl
shl si, 8
add si, bp
mov ebp, dword [esp + 0x28]
cmp si, word [ebp + 8]
jne 0x4576cc
mov esi, dword [esp + 0x2c]
mov cl, byte [esi + 9]
mov byte [edx], cl
mov al, byte [esi + 8]
jmp 0x4576df
movzx esi, cl
mov cl, bl
shr esi, cl
movzx ecx, al
mov eax, dword [edi + 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 0x4576a0
jmp case.0x457374.2
test esi, esi
jbe case.0x457374.2
mov edi, dword [esp + 0x28]
mov eax, esi
mov esi, dword [esp + 0x2c]
movzx cx, byte [edx]
movzx bx, byte [edx + 1]
shl cx, 8
add cx, bx
cmp cx, word [edi + 8]
jne 0x457726
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 0x457703
jmp case.0x457374.2
mov eax, dword [esp + 0x24]
cmp byte [eax + 9], 8
jne 0x457821
cmp dword [esp + 0x34], 0
je 0x4577c2
test esi, esi
jbe case.0x457374.2
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov ecx, esi
mov esi, dword [esp + 0x34]
add edx, 2
mov al, byte [edx - 2]
movzx bx, al
cmp bx, word [edi + 2]
jne 0x457797
movzx bx, byte [edx - 1]
cmp bx, word [edi + 4]
jne 0x457797
movzx bx, byte [edx]
cmp bx, word [edi + 6]
jne 0x457797
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 0x4577b3
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 0x457761
jmp case.0x457374.2
test esi, esi
jbe case.0x457374.2
mov edi, dword [esp + 0x2c]
mov eax, esi
mov esi, dword [esp + 0x28]
add edx, 2
jmp 0x4577e0
movzx cx, byte [edx - 2]
cmp cx, word [esi + 2]
jne 0x457814
movzx cx, byte [edx - 1]
cmp cx, word [esi + 4]
jne 0x457814
movzx cx, byte [edx]
cmp cx, word [esi + 6]
jne 0x457814
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 0x4577e0
jmp case.0x457374.2
test edi, edi
je 0x45791f
test esi, esi
jbe case.0x457374.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 bp, cl
shl dx, 8
add dx, bp
mov ebp, dword [esp + 0x28]
cmp dx, word [ebp + 2]
jne 0x4578bf
movzx dx, byte [eax]
movzx bp, byte [eax + 1]
shl dx, 8
add dx, bp
mov ebp, dword [esp + 0x28]
cmp dx, word [ebp + 4]
jne 0x4578bf
movzx dx, byte [eax + 2]
movzx bp, byte [eax + 3]
shl dx, 8
add dx, bp
mov ebp, dword [esp + 0x28]
cmp dx, word [ebp + 6]
jne 0x4578bf
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 0x45790c
movzx ebp, cl
movzx edx, bl
mov cl, dl
shr ebp, cl
movzx ecx, byte [eax - 2]
mov ebp, dword [edi + ebp*4]
movzx ecx, word [ebp + ecx*2]
movzx ebp, byte [eax + 1]
mov byte [eax - 1], cl
mov cl, dl
shr ebp, cl
mov byte [eax - 2], ch
movzx ecx, byte [eax]
mov ebp, dword [edi + ebp*4]
movzx ecx, word [ebp + ecx*2]
movzx ebp, byte [eax + 3]
mov byte [eax + 1], cl
mov cl, dl
movzx edx, byte [eax + 2]
shr ebp, cl
mov byte [eax], ch
mov ecx, dword [edi + ebp*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 0x457840
jmp case.0x457374.2
test esi, esi
jbe case.0x457374.2
mov edi, dword [esp + 0x28]
mov eax, esi
mov esi, dword [esp + 0x2c]
add edx, 2
jmp 0x457940
movzx cx, byte [edx - 2]
movzx bx, byte [edx - 1]
shl cx, 8
add cx, bx
cmp cx, word [edi + 2]
jne 0x4579ad
movzx cx, byte [edx]
movzx bx, byte [edx + 1]
shl cx, 8
add cx, bx
cmp cx, word [edi + 4]
jne 0x4579ad
movzx cx, byte [edx + 2]
movzx bx, byte [edx + 3]
shl cx, 8
add cx, bx
cmp cx, word [edi + 6]
jne 0x4579ad
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 0x457940
jmp case.0x457374.2
mov eax, dword [esp + 0x24]
cmp byte [eax + 9], 8
jne 0x457aeb
cmp dword [esp + 0x3c], 0
je 0x457a7e
cmp dword [esp + 0x38], 0
je 0x457a7e
cmp dword [esp + 0x34], 0
je 0x457a7e
cmp dword [esp + 0x10], 0
mov ecx, edx
mov esi, edx
jbe case.0x457374.2
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x14], edx
movzx ax, byte [ecx + 1]
movzx eax, ax
cmp ax, 0xff
jne 0x457a20
movzx edx, byte [ecx]
mov eax, dword [esp + 0x34]
mov dl, byte [edx + eax]
mov byte [esi], dl
jmp 0x457a6c
test ax, ax
jne 0x457a30
mov eax, dword [esp + 0x2c]
mov dl, byte [eax + 8]
mov byte [esi], dl
jmp 0x457a6c
movzx ebx, byte [ecx]
movzx bx, byte [ebx + edi]
imul bx, ax
mov edx, 0xff
sub edx, eax
imul dx, word [ebp + 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 0x457a04
jmp case.0x457374.2
cmp dword [esp + 0x10], 0
mov ecx, edx
mov esi, edx
jbe case.0x457374.2
mov edi, dword [esp + 0x10]
mov al, byte [ecx + 1]
cmp al, 0xff
jne 0x457a9c
mov dl, byte [ecx]
jmp 0x457ad9
test al, al
jne 0x457aa9
mov eax, dword [esp + 0x2c]
mov dl, byte [eax + 8]
jmp 0x457ad9
movzx bx, byte [ecx]
movzx ax, al
mov edx, 0xff
imul bx, ax
sub edx, eax
imul dx, word [ebp + 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 edi, 1
jne 0x457a91
jmp case.0x457374.2
test edi, edi
je 0x457bd8
test ecx, ecx
je 0x457bd8
cmp dword [esp + 0x48], 0
je 0x457bd8
cmp dword [esp + 0x10], 0
mov esi, edx
jbe case.0x457374.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 0x457b4e
movzx eax, byte [edx]
mov cl, bl
shr eax, cl
movzx ecx, byte [edx - 1]
mov eax, dword [edi + eax*4]
movzx eax, word [eax + ecx*2]
jmp 0x457bbd
test ax, ax
jne 0x457b61
mov ebp, dword [esp + 0x2c]
mov cl, byte [ebp + 9]
mov byte [esi], cl
mov al, byte [ebp + 8]
jmp 0x457bbf
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
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 edi, dword [esp + 0x40]
mov byte [esi], ah
mov byte [esi + 1], al
add edx, 4
add esi, 2
sub dword [esp + 0x14], 1
jne 0x457b20
jmp case.0x457374.2
test esi, esi
jbe case.0x457374.2
mov edi, esi
mov esi, dword [esp + 0x2c]
lea ecx, [edx + 3]
lea esp, [esp]
movzx ax, byte [ecx - 1]
movzx bx, byte [ecx]
shl ax, 8
add ax, bx
movzx eax, ax
cmp ax, 0xffff
jne 0x457c12
mov ax, word [ecx - 3]
mov word [edx], ax
jmp 0x457c69
test ax, ax
jne 0x457c23
movzx eax, byte [esi + 9]
mov byte [edx], al
movzx eax, byte [esi + 8]
jmp 0x457c66
movzx si, byte [ecx - 3]
movzx bx, byte [ecx - 2]
shl si, 8
add si, bx
movzx ebx, word [ebp + 8]
movzx eax, ax
movzx esi, si
imul esi, eax
mov ebp, 0xffff
sub ebp, eax
imul ebx, ebp
mov ebp, dword [esp + 0x30]
lea esi, [esi + ebx + 0x8000]
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 edi, 1
jne 0x457bf0
jmp case.0x457374.2
mov eax, dword [esp + 0x24]
cmp byte [eax + 9], 8
jne 0x457ef6
cmp dword [esp + 0x3c], 0
je 0x457dfb
cmp dword [esp + 0x38], 0
je 0x457dfb
cmp dword [esp + 0x34], 0
je 0x457dfb
test esi, esi
jbe case.0x457374.2
mov ecx, dword [esp + 0x10]
lea esi, [edx + 2]
lea edi, [edx + 1]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x34]
lea ebx, [ebx]
mov al, byte [edi + 2]
cmp al, 0xff
jne 0x457cfb
movzx eax, byte [edi - 1]
movzx eax, byte [eax + ecx]
mov byte [esi - 2], al
movzx eax, byte [edi]
movzx eax, byte [eax + ecx]
mov byte [esi - 1], al
movzx eax, byte [edi + 1]
movzx eax, byte [eax + ecx]
mov byte [esi], al
jmp 0x457de5
test al, al
jne 0x457d18
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 0x457de5
movzx ebx, byte [edi - 1]
mov edx, dword [esp + 0x3c]
movzx ebx, byte [ebx + edx]
mov ebp, dword [esp + 0x30]
mov bp, word [ebp + 2]
movzx ax, al
imul bx, ax
mov ecx, 0xff
sub ecx, eax
imul bp, cx
add bx, bp
add bx, 0x80
movzx ebx, bx
movzx ebp, bx
mov ebx, ebp
shr ebx, 8
add ebx, ebp
mov ebp, dword [esp + 0x38]
sar ebx, 8
movzx ebx, bl
movzx ebx, byte [ebx + ebp]
mov ebp, dword [esp + 0x30]
mov byte [esi - 2], bl
movzx ebx, byte [edi]
movzx ebx, byte [ebx + edx]
mov bp, word [ebp + 4]
imul bx, ax
imul bp, cx
add bx, bp
add bx, 0x80
movzx ebx, bx
movzx ebp, bx
mov ebx, ebp
shr ebx, 8
add ebx, ebp
mov ebp, dword [esp + 0x38]
sar ebx, 8
movzx ebx, bl
movzx ebx, byte [ebx + ebp]
mov byte [esi - 1], bl
movzx ebx, byte [edi + 1]
movzx dx, byte [ebx + 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
sar ecx, 8
movzx edx, cl
mov eax, ebp
mov cl, byte [edx + eax]
mov edx, dword [esp + 0x2c]
mov byte [esi], cl
mov ecx, dword [esp + 0x34]
add edi, 4
add esi, 3
sub dword [esp + 0x14], 1
jne 0x457cd0
jmp case.0x457374.2
test esi, esi
jbe case.0x457374.2
mov ecx, dword [esp + 0x2c]
lea esi, [edx + 2]
lea edi, [edx + 1]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x14], edx
mov al, byte [edi + 2]
cmp al, 0xff
jne 0x457e33
movzx eax, byte [edi - 1]
mov byte [esi - 2], al
mov dl, byte [edi]
mov byte [esi - 1], dl
movzx eax, byte [edi + 1]
mov byte [esi], al
jmp 0x457ee0
test al, al
jne 0x457e4f
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 0x457ee0
movzx ebx, byte [edi - 1]
mov edx, dword [esp + 0x2c]
mov bp, word [edx + 2]
movzx ax, al
imul bx, ax
mov ecx, 0xff
sub ecx, eax
imul bp, cx
add bx, bp
add bx, 0x80
movzx ebx, bx
movzx ebp, bx
mov ebx, ebp
shr ebx, 8
add ebx, ebp
sar ebx, 8
mov byte [esi - 2], bl
movzx ebx, word [edx + 4]
movzx bp, byte [edi]
imul bx, cx
imul bp, ax
add bx, bp
add bx, 0x80
movzx ebx, bx
movzx ebp, bx
mov ebx, ebp
shr ebx, 8
add ebx, ebp
sar ebx, 8
mov byte [esi - 1], bl
movzx ebx, byte [edi + 1]
imul bx, ax
mov ax, word [edx + 6]
imul ax, cx
add bx, ax
add bx, 0x80
movzx eax, bx
movzx eax, ax
mov ecx, eax
shr ecx, 8
add ecx, eax
sar ecx, 8
mov byte [esi], cl
mov ecx, edx
add edi, 4
add esi, 3
sub dword [esp + 0x14], 1
jne 0x457e15
jmp case.0x457374.2
test edi, edi
je 0x45811e
test ecx, ecx
je 0x45811e
cmp dword [esp + 0x48], 0
je 0x45811e
test esi, esi
jbe case.0x457374.2
mov ecx, esi
lea eax, [edx + 2]
add edx, 1
mov dword [esp + 0x1c], ecx
jmp 0x457f30
movzx cx, byte [edx + 5]
movzx si, byte [edx + 6]
shl cx, 8
add cx, si
movzx esi, cx
cmp si, 0xffff
jne 0x457f9e
movzx esi, byte [edx]
movzx ecx, bl
shr esi, cl
mov dword [esp + 0x14], ecx
movzx ecx, byte [edx - 1]
mov esi, dword [edi + 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 [edi + 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 [edi + esi*4]
movzx ecx, word [esi + ecx*2]
jmp 0x458102
test si, si
jne 0x457fe6
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 0x458105
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 + 0x30]
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 + 0x30]
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 + 0x30]
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 edi, 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 0x457f30
jmp case.0x457374.2
test esi, esi
jbe case.0x457374.2
lea eax, [edx + 2]
lea ecx, [edx + 7]
mov edx, esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x1c], edx
jmp 0x458140
movzx dx, byte [ecx - 1]
movzx di, byte [ecx]
shl dx, 8
add dx, di
movzx edx, dx
cmp dx, 0xffff
jne 0x45816d
mov edx, dword [ecx - 7]
mov dword [eax - 2], edx
mov dx, word [ecx - 3]
mov word [eax + 2], dx
jmp 0x458259
test dx, dx
jne 0x45819d
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 0x458256
movzx esi, byte [ecx - 5]
movzx edi, byte [ecx - 4]
movzx bx, byte [ecx - 6]
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 esi, si
mov dword [esp + 0x14], esi
movzx esi, dx
movzx dx, byte [ecx - 7]
shl dx, 8
add dx, bx
mov ebx, dword [esp + 0x2c]
movzx ebp, word [ebx + 2]
movzx edx, dx
imul edx, esi
mov edi, 0xffff
sub edi, esi
imul ebp, edi
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 [ebx + 4]
imul edx, edi
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 [ebx + 6]
imul edx, edi
movzx edi, word [esp + 0x14]
imul edi, esi
lea esi, [edx + edi + 0x8000]
mov edx, esi
shr edx, 0x10
add edx, esi
shr edx, 0x10
mov byte [eax + 2], dh
mov esi, ebx
mov byte [eax + 3], dl
add ecx, 8
add eax, 6
sub dword [esp + 0x1c], 1
jne 0x458140
mov edx, dword [esp + 0x24]
mov al, byte [edx + 8]
test al, 4
je 0x4582b1
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
cmp al, 8
movzx eax, al
jb 0x4582a3
shr eax, 3
imul eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
mov dword [edx + 4], eax
pop ebx
add esp, 0x10
ret
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