Function at 0x584390
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.0x584435.3
mov ebp, dword [esp + 0x30]
jmp dword [ebp*4 + 0x585570]
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x40]
movzx ecx, byte [ecx + 9]
dec ecx
cmp ecx, 0xf
ja case.0x584435.3
movzx ecx, byte [ecx + 0x5855a4]
jmp dword [ecx*4 + 0x58558c]
mov ecx, 7
mov dword [esp + 0x40], ecx
test ebx, ebx
je case.0x584435.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 0x58448d
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 0x584491
mov ecx, dword [esp + 0x40]
test ecx, ecx
jne 0x58449d
mov ecx, 7
inc eax
jmp 0x58449e
dec ecx
sub ebx, 1
mov dword [esp + 0x40], ecx
mov dword [esp + 0x10], ebx
jne 0x584454
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test edi, edi
je 0x584576
mov edx, 6
mov dword [esp + 0x38], edx
test ebx, ebx
je case.0x584435.3
movzx esi, word [ebp + 0x1bc]
mov cl, byte [eax]
mov byte [esp + 0x40], cl
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 [esp + 0x40]
mov dl, dh
shr dl, cl
and dl, 3
movzx ecx, dl
cmp cx, si
jne 0x584517
mov dl, byte [ebp + 0x16c]
mov ecx, dword [esp + 0x38]
shl dl, cl
mov ecx, dword [esp + 0x2c]
and cl, dh
jmp 0x58454a
mov cl, 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 ecx, dword [esp + 0x2c]
and cl, byte [esp + 0x40]
or dl, cl
mov byte [eax], dl
mov edx, dword [esp + 0x38]
test edx, edx
jne 0x58455e
mov edx, 6
inc eax
jmp 0x584561
sub edx, 2
mov dword [esp + 0x38], edx
sub ebx, 1
jne 0x5844d3
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.0x584435.3
movzx esi, word [ebp + 0x1bc]
nop
mov dh, byte [eax]
mov dl, dh
shr dl, cl
and dl, 3
movzx ecx, dl
cmp cx, si
jne 0x5845c9
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 0x5845cd
mov ecx, dword [esp + 0x40]
test ecx, ecx
jne 0x5845d9
mov ecx, 6
inc eax
jmp 0x5845dc
sub ecx, 2
sub ebx, 1
mov dword [esp + 0x40], ecx
mov dword [esp + 0x10], ebx
jne 0x584590
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test edi, edi
je 0x5846a8
mov edx, 4
mov dword [esp + 0x38], edx
test ebx, ebx
je case.0x584435.3
movzx esi, word [ebp + 0x1bc]
mov cl, byte [eax]
mov byte [esp + 0x40], cl
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 [esp + 0x40]
mov dl, dh
shr dl, cl
and dl, 0xf
movzx ecx, dl
cmp cx, si
jne 0x584655
mov dl, byte [ebp + 0x16c]
mov ecx, dword [esp + 0x38]
shl dl, cl
mov ecx, dword [esp + 0x2c]
and cl, dh
jmp 0x58467c
mov cl, 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 ecx, dword [esp + 0x2c]
and cl, byte [esp + 0x40]
or dl, cl
mov byte [eax], dl
mov edx, dword [esp + 0x38]
test edx, edx
jne 0x584690
mov edx, 4
inc eax
jmp 0x584693
sub edx, 4
mov dword [esp + 0x38], edx
sub ebx, 1
jne 0x584611
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.0x584435.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 0x5846f9
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 0x5846fd
mov ecx, dword [esp + 0x40]
test ecx, ecx
jne 0x584709
mov ecx, 4
inc eax
jmp 0x58470c
sub ecx, 4
sub ebx, 1
mov dword [esp + 0x40], ecx
mov dword [esp + 0x10], ebx
jne 0x5846c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test edi, edi
je 0x58475c
test ebx, ebx
je case.0x584435.3
movzx esi, word [ebp + 0x1bc]
mov dl, byte [eax]
movzx ecx, dl
cmp cx, si
jne 0x584746
mov cl, byte [ebp + 0x16c]
jmp 0x58474c
movzx ecx, dl
mov cl, byte [ecx + edi]
mov byte [eax], cl
inc eax
sub ebx, 1
jne 0x584734
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test ebx, ebx
je case.0x584435.3
movzx edx, word [ebp + 0x1bc]
nop dword [eax + eax]
movzx ecx, byte [eax]
cmp cx, dx
jne 0x584780
mov cl, byte [ebp + 0x16c]
mov byte [eax], cl
inc eax
sub ebx, 1
jne 0x584770
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
cmp dword [esp + 0x18], 0
je 0x58481a
test ebx, ebx
je case.0x584435.3
movzx esi, word [ebp + 0x1bc]
mov edi, 0x100
nop dword [eax]
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 0x5847d9
movzx ecx, word [ebp + 0x16c]
jmp 0x5847fc
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 0x5847b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test ebx, ebx
je case.0x584435.3
movzx esi, word [ebp + 0x1bc]
mov edi, 0x100
nop
movzx edx, byte [eax]
movzx ecx, byte [eax + 1]
imul edx, edi
add dx, cx
cmp dx, si
jne 0x584853
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 0x584830
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.0x584435.3
cmp cl, 8
jne 0x584955
test edi, edi
je 0x5848fc
movzx esi, word [ebp + 0x1b6]
lea ecx, [eax + 1]
nop dword [eax]
mov dl, byte [ecx - 1]
movzx eax, dl
cmp ax, si
jne 0x5848cf
movzx eax, byte [ecx]
cmp ax, word [ebp + 0x1b8]
jne 0x5848cf
movzx eax, byte [ecx + 1]
cmp ax, word [ebp + 0x1ba]
jne 0x5848cf
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 0x5848e9
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 0x584890
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
movzx edx, word [ebp + 0x1b6]
lea ecx, [eax + 2]
movzx eax, byte [ecx - 2]
cmp ax, dx
jne 0x584945
movzx eax, byte [ecx - 1]
cmp ax, word [ebp + 0x1b8]
jne 0x584945
movzx eax, byte [ecx]
cmp ax, word [ebp + 0x1ba]
jne 0x584945
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 0x584906
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov edi, dword [esp + 0x18]
test edi, edi
je 0x584a7e
lea esi, [eax + 2]
mov edx, 0x100
nop dword [eax]
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 0x5849fa
movzx ecx, byte [esi]
movzx eax, dx
imul ecx, eax
movzx eax, byte [esi + 1]
add cx, ax
cmp cx, word [ebp + 0x1b8]
jne 0x5849fa
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 0x5849fa
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 0x584a57
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 0x584970
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
movzx edi, word [ebp + 0x1b6]
lea edx, [eax + 2]
mov esi, 0x100
nop dword [eax]
movzx ecx, byte [edx - 2]
movzx eax, byte [edx - 1]
imul ecx, esi
add cx, ax
cmp cx, di
jne 0x584b05
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
imul ecx, esi
add cx, ax
cmp cx, word [ebp + 0x1b8]
jne 0x584b05
movzx ecx, byte [edx + 2]
movzx eax, byte [edx + 3]
imul ecx, esi
add cx, ax
cmp cx, word [ebp + 0x1ba]
jne 0x584b05
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 0x584a90
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 0x584cbf
test esi, esi
je 0x584c5a
test edx, edx
je 0x584c5a
test edi, edi
je 0x584c5a
test ebx, ebx
je case.0x584435.3
mov edx, 0xff
test ecx, ecx
jne 0x584be0
movzx esi, byte [eax + 1]
mov dword [esp + 0x40], esi
cmp si, dx
jne 0x584b69
movzx ecx, byte [eax]
mov cl, byte [ecx + edi]
jmp 0x584bc6
test si, si
jne 0x584b76
mov cl, byte [ebp + 0x16c]
jmp 0x584bc6
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 0x584b54
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 0x584bf5
movzx ecx, byte [eax]
mov dl, byte [ecx + edi]
jmp 0x584c43
test si, si
jne 0x584c02
mov dl, byte [ebp + 0x16c]
jmp 0x584c43
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 0x584be0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test ebx, ebx
je case.0x584435.3
mov cl, byte [eax + 1]
test cl, cl
jne 0x584c73
mov cl, byte [ebp + 0x16c]
mov byte [eax], cl
jmp 0x584caf
cmp cl, 0xff
jae 0x584caf
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 0x584c62
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
cmp dword [esp + 0x18], 0
je 0x584ea7
cmp dword [esp + 0x28], 0
je 0x584ea7
cmp dword [esp + 0x1c], 0
je 0x584ea7
test ebx, ebx
je case.0x584435.3
lea edi, [eax + 1]
mov eax, 0x100
mov esi, 0xffff
test ecx, ecx
je 0x584dd4
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 0x584d43
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 0x584db7
mov dword [esp + 0x38], edx
test ax, ax
jne 0x584d5e
movzx eax, word [ebp + 0x16c]
mov ecx, eax
shr ax, 8
movzx eax, ax
jmp 0x584db7
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 0x584d00
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 0x584e0e
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 0x584e81
mov dword [esp + 0x38], edx
test ax, ax
jne 0x584e20
movzx eax, word [ebp + 0x16c]
jmp 0x584e81
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 0x584dd4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test ebx, ebx
je case.0x584435.3
lea edi, [eax + 1]
mov edx, 0xffff
mov eax, 0x100
nop dword [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 0x584ee2
movzx ecx, word [ebp + 0x16c]
jmp 0x584f1f
cmp ax, dx
jae 0x584f29
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 0x584ec0
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 0x5851d4
mov ecx, esi
test ecx, ecx
je 0x5850d9
test edx, edx
je 0x5850d9
test edi, edi
je 0x5850d9
test ebx, ebx
je case.0x584435.3
lea esi, [eax + 1]
mov al, byte [esi + 2]
cmp al, 0xff
jne 0x584f9c
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 0x5850be
test al, al
jne 0x584fbe
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 0x5850be
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 0x58501a
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 0x58506c
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 0x5850be
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 0x584f75
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test ebx, ebx
je case.0x584435.3
lea ecx, [eax + 1]
mov dword [esp + 0x40], ecx
mov al, byte [ecx + 2]
test al, al
jne 0x585111
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 0x5851bc
cmp al, 0xff
jae 0x5851bc
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 0x5850e8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov edi, dword [esp + 0x18]
test edi, edi
je 0x585440
cmp dword [esp + 0x28], 0
je 0x585440
cmp dword [esp + 0x1c], 0
je 0x585440
test ebx, ebx
je case.0x584435.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 0x58528d
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 0x585418
test cx, cx
jne 0x5852ca
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 0x58541d
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 0x58533d
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 0x58539f
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 0x585402
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 0x585210
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test ebx, ebx
je case.0x584435.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 0x58549d
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 0x58554c
cmp ax, dx
jae 0x585557
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 0x585455
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret