Function at 0x5f8b90
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffff78
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
mov eax, dword [esp]
mov edx, dword [eax + 0xc]
mov dword [esp + 0xc], edx
mov ecx, dword [esp]
mov eax, dword [ecx + 0x40]
mov dword [esp + 0x10], eax
mov edx, dword [esp]
mov ecx, dword [edx + 0x30]
mov dword [esp + 0x14], ecx
mov eax, dword [esp]
mov edx, dword [eax + 0x34]
mov dword [esp + 0x18], edx
mov ecx, dword [esp]
mov eax, dword [ecx + 0x38]
mov dword [esp + 0x1c], eax
mov edx, dword [esp]
mov ecx, dword [edx + 0x3c]
mov edx, 1
mov dword [esp + 0x20], ecx
mov eax, dword [esp]
mov cl, byte [eax + 2]
shl edx, cl
dec edx
mov dword [esp + 0x24], edx
xor edx, edx
mov eax, dword [esp]
mov dl, byte [eax]
mov eax, pe_nt_image_headers32
mov dword [esp + 0x28], edx
mov edx, pe_nt_image_headers32
mov ecx, dword [esp]
mov cl, byte [ecx + 1]
shl eax, cl
mov ecx, dword [esp + 0x28]
shr edx, cl
sub eax, edx
mov dword [esp + 0x2c], eax
mov eax, dword [esp]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x30], eax
mov edx, dword [esp]
mov ecx, dword [edx + 0x14]
mov dword [esp + 0x34], ecx
mov eax, dword [esp]
mov edx, dword [eax + 0x18]
mov dword [esp + 0x38], edx
mov ecx, dword [esp]
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x3c], eax
xor eax, eax
mov edx, dword [esp]
mov ecx, dword [edx + 0x2c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
mov edx, dword [esp]
mov ecx, dword [edx + 0x1c]
mov dword [esp + 0x48], ecx
mov eax, dword [esp]
mov esi, dword [eax + 0x20]
mov eax, dword [esp]
mov edi, dword [eax + 0x24]
mov eax, dword [esp + 0x3c]
and eax, dword [esp + 0x24]
shl eax, 4
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0x50]
add edx, dword [esp + 0x10]
add edx, edx
add edx, dword [esp + 0xc]
add edx, 0xfffffe00
mov dword [esp + 0x4c], edx
mov ecx, dword [esp + 0x4c]
movzx edx, word [ecx]
cmp esi, 0x1000000
jae 0x5f8cb4
mov eax, dword [esp + 0x48]
xor ecx, ecx
shl edi, 8
shl esi, 8
mov cl, byte [eax]
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f955e
mov esi, ecx
mov eax, 0x800
sub eax, edx
shr eax, 5
add ax, dx
mov edx, dword [esp + 0x4c]
mov word [edx], ax
mov ecx, dword [esp + 0xc]
add ecx, 0x280
mov dword [esp + 0x4c], ecx
cmp dword [esp + 0x3c], 0
jne 0x5f8cf6
cmp dword [esp + 0x40], 0
je 0x5f8d2c
cmp dword [esp + 0x38], 0
mov ecx, dword [esp + 0x28]
jne 0x5f8d07
mov eax, dword [esp + 0x34]
jmp 0x5f8d0b
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x30]
movzx eax, byte [edx + eax - 1]
mov edx, dword [esp + 0x3c]
shl edx, 8
add eax, edx
and eax, dword [esp + 0x2c]
shl eax, cl
lea ecx, [eax + eax*2]
add ecx, ecx
add dword [esp + 0x4c], ecx
inc dword [esp + 0x3c]
cmp dword [esp + 0x10], 7
jae 0x5f906e
cmp dword [esp + 0x10], 4
jae 0x5f8d48
mov eax, dword [esp + 0x10]
jmp 0x5f8d4d
mov eax, 3
sub dword [esp + 0x10], eax
mov eax, 1
mov edx, dword [esp + 0x4c]
movzx edx, word [edx + eax*2]
cmp esi, 0x1000000
jae 0x5f8d79
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f8da0
mov ebx, 0x800
mov esi, ecx
sub ebx, edx
mov ecx, dword [esp + 0x4c]
shr ebx, 5
add bx, dx
mov word [ecx + eax*2], bx
add eax, eax
jmp 0x5f8db8
sub esi, ecx
sub edi, ecx
mov ecx, edx
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x4c]
mov word [ecx + eax*2], dx
lea eax, [eax + eax + 1]
mov edx, dword [esp + 0x4c]
movzx edx, word [edx + eax*2]
cmp esi, 0x1000000
jae 0x5f8ddb
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f8e02
mov ebx, 0x800
mov esi, ecx
sub ebx, edx
mov ecx, dword [esp + 0x4c]
shr ebx, 5
add bx, dx
mov word [ecx + eax*2], bx
add eax, eax
jmp 0x5f8e1a
sub esi, ecx
sub edi, ecx
mov ecx, edx
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x4c]
mov word [ecx + eax*2], dx
lea eax, [eax + eax + 1]
mov edx, dword [esp + 0x4c]
movzx edx, word [edx + eax*2]
cmp esi, 0x1000000
jae 0x5f8e3d
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f8e64
mov ebx, 0x800
mov esi, ecx
sub ebx, edx
mov ecx, dword [esp + 0x4c]
shr ebx, 5
add bx, dx
mov word [ecx + eax*2], bx
add eax, eax
jmp 0x5f8e7c
sub esi, ecx
sub edi, ecx
mov ecx, edx
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x4c]
mov word [ecx + eax*2], dx
lea eax, [eax + eax + 1]
mov edx, dword [esp + 0x4c]
movzx edx, word [edx + eax*2]
cmp esi, 0x1000000
jae 0x5f8e9f
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f8ec6
mov ebx, 0x800
mov esi, ecx
sub ebx, edx
mov ecx, dword [esp + 0x4c]
shr ebx, 5
add bx, dx
mov word [ecx + eax*2], bx
add eax, eax
jmp 0x5f8ede
sub esi, ecx
sub edi, ecx
mov ecx, edx
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x4c]
mov word [ecx + eax*2], dx
lea eax, [eax + eax + 1]
mov edx, dword [esp + 0x4c]
movzx edx, word [edx + eax*2]
cmp esi, 0x1000000
jae 0x5f8f01
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f8f28
mov ebx, 0x800
mov esi, ecx
sub ebx, edx
mov ecx, dword [esp + 0x4c]
shr ebx, 5
add bx, dx
mov word [ecx + eax*2], bx
add eax, eax
jmp 0x5f8f40
sub esi, ecx
sub edi, ecx
mov ecx, edx
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x4c]
mov word [ecx + eax*2], dx
lea eax, [eax + eax + 1]
mov edx, dword [esp + 0x4c]
movzx edx, word [edx + eax*2]
cmp esi, 0x1000000
jae 0x5f8f63
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f8f8a
mov ebx, 0x800
mov esi, ecx
sub ebx, edx
mov ecx, dword [esp + 0x4c]
shr ebx, 5
add bx, dx
mov word [ecx + eax*2], bx
add eax, eax
jmp 0x5f8fa2
sub esi, ecx
sub edi, ecx
mov ecx, edx
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x4c]
mov word [ecx + eax*2], dx
lea eax, [eax + eax + 1]
mov edx, dword [esp + 0x4c]
movzx edx, word [edx + eax*2]
cmp esi, 0x1000000
jae 0x5f8fc5
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f8fec
mov ebx, 0x800
mov esi, ecx
sub ebx, edx
mov ecx, dword [esp + 0x4c]
shr ebx, 5
add bx, dx
mov word [ecx + eax*2], bx
add eax, eax
jmp 0x5f9004
sub esi, ecx
sub edi, ecx
mov ecx, edx
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x4c]
mov word [ecx + eax*2], dx
lea eax, [eax + eax + 1]
mov edx, dword [esp + 0x4c]
movzx edx, word [edx + eax*2]
cmp esi, 0x1000000
jae 0x5f9027
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f9051
mov ebx, 0x800
mov esi, ecx
sub ebx, edx
mov ecx, dword [esp + 0x4c]
shr ebx, 5
add bx, dx
mov word [ecx + eax*2], bx
add eax, eax
jmp 0x5f954a
sub esi, ecx
sub edi, ecx
mov ecx, edx
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x4c]
mov word [ecx + eax*2], dx
lea eax, [eax + eax + 1]
jmp 0x5f954a
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x38]
sub edx, dword [esp + 0x14]
cmp eax, dword [esp + 0x14]
jae 0x5f9086
mov ecx, dword [esp + 0x34]
jmp 0x5f9088
xor ecx, ecx
add edx, ecx
mov eax, dword [esp + 0x30]
movzx edx, byte [eax + edx]
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], pe_nt_image_headers32
cmp dword [esp + 0x10], 0xa
jae 0x5f90ac
mov eax, 3
jmp 0x5f90b1
mov eax, 6
sub dword [esp + 0x10], eax
mov eax, 1
mov edx, dword [esp + 0x54]
add dword [esp + 0x54], edx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x5c], ecx
mov edx, dword [esp + 0x54]
and dword [esp + 0x58], edx
mov ecx, dword [esp + 0x58]
add ecx, dword [esp + 0x5c]
add ecx, eax
add ecx, ecx
add ecx, dword [esp + 0x4c]
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0x60]
movzx edx, word [edx]
cmp esi, 0x1000000
jae 0x5f9108
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f9136
mov esi, ecx
mov ecx, 0x800
sub ecx, edx
shr ecx, 5
add cx, dx
mov edx, dword [esp + 0x60]
mov word [edx], cx
add eax, eax
mov edx, dword [esp + 0x5c]
xor dword [esp + 0x58], edx
jmp 0x5f914d
sub esi, ecx
sub edi, ecx
mov ecx, edx
lea eax, [eax + eax + 1]
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x60]
mov word [ecx], dx
mov edx, dword [esp + 0x54]
add dword [esp + 0x54], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x5c], edx
mov ecx, dword [esp + 0x54]
and dword [esp + 0x58], ecx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x5c]
add edx, eax
add edx, edx
add edx, dword [esp + 0x4c]
mov dword [esp + 0x60], edx
mov ecx, dword [esp + 0x60]
movzx edx, word [ecx]
cmp esi, 0x1000000
jae 0x5f919b
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f91c9
mov esi, ecx
mov ecx, 0x800
sub ecx, edx
shr ecx, 5
add cx, dx
mov edx, dword [esp + 0x60]
mov word [edx], cx
add eax, eax
mov edx, dword [esp + 0x5c]
xor dword [esp + 0x58], edx
jmp 0x5f91e0
sub esi, ecx
sub edi, ecx
mov ecx, edx
lea eax, [eax + eax + 1]
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x60]
mov word [ecx], dx
mov edx, dword [esp + 0x54]
add dword [esp + 0x54], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x5c], edx
mov ecx, dword [esp + 0x54]
and dword [esp + 0x58], ecx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x5c]
add edx, eax
add edx, edx
add edx, dword [esp + 0x4c]
mov dword [esp + 0x60], edx
mov ecx, dword [esp + 0x60]
movzx edx, word [ecx]
cmp esi, 0x1000000
jae 0x5f922e
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f925c
mov esi, ecx
mov ecx, 0x800
sub ecx, edx
shr ecx, 5
add cx, dx
mov edx, dword [esp + 0x60]
mov word [edx], cx
add eax, eax
mov edx, dword [esp + 0x5c]
xor dword [esp + 0x58], edx
jmp 0x5f9273
sub esi, ecx
sub edi, ecx
mov ecx, edx
lea eax, [eax + eax + 1]
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x60]
mov word [ecx], dx
mov edx, dword [esp + 0x54]
add dword [esp + 0x54], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x5c], edx
mov ecx, dword [esp + 0x54]
and dword [esp + 0x58], ecx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x5c]
add edx, eax
add edx, edx
add edx, dword [esp + 0x4c]
mov dword [esp + 0x60], edx
mov ecx, dword [esp + 0x60]
movzx edx, word [ecx]
cmp esi, 0x1000000
jae 0x5f92c1
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f92ef
mov esi, ecx
mov ecx, 0x800
sub ecx, edx
shr ecx, 5
add cx, dx
mov edx, dword [esp + 0x60]
mov word [edx], cx
add eax, eax
mov edx, dword [esp + 0x5c]
xor dword [esp + 0x58], edx
jmp 0x5f9306
sub esi, ecx
sub edi, ecx
mov ecx, edx
lea eax, [eax + eax + 1]
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x60]
mov word [ecx], dx
mov edx, dword [esp + 0x54]
add dword [esp + 0x54], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x5c], edx
mov ecx, dword [esp + 0x54]
and dword [esp + 0x58], ecx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x5c]
add edx, eax
add edx, edx
add edx, dword [esp + 0x4c]
mov dword [esp + 0x60], edx
mov ecx, dword [esp + 0x60]
movzx edx, word [ecx]
cmp esi, 0x1000000
jae 0x5f9354
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f9382
mov esi, ecx
mov ecx, 0x800
sub ecx, edx
shr ecx, 5
add cx, dx
mov edx, dword [esp + 0x60]
mov word [edx], cx
add eax, eax
mov edx, dword [esp + 0x5c]
xor dword [esp + 0x58], edx
jmp 0x5f9399
sub esi, ecx
sub edi, ecx
mov ecx, edx
lea eax, [eax + eax + 1]
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x60]
mov word [ecx], dx
mov edx, dword [esp + 0x54]
add dword [esp + 0x54], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x5c], edx
mov ecx, dword [esp + 0x54]
and dword [esp + 0x58], ecx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x5c]
add edx, eax
add edx, edx
add edx, dword [esp + 0x4c]
mov dword [esp + 0x60], edx
mov ecx, dword [esp + 0x60]
movzx edx, word [ecx]
cmp esi, 0x1000000
jae 0x5f93e7
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f9415
mov esi, ecx
mov ecx, 0x800
sub ecx, edx
shr ecx, 5
add cx, dx
mov edx, dword [esp + 0x60]
mov word [edx], cx
add eax, eax
mov edx, dword [esp + 0x5c]
xor dword [esp + 0x58], edx
jmp 0x5f942c
sub esi, ecx
sub edi, ecx
mov ecx, edx
lea eax, [eax + eax + 1]
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x60]
mov word [ecx], dx
mov edx, dword [esp + 0x54]
add dword [esp + 0x54], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x5c], edx
mov ecx, dword [esp + 0x54]
and dword [esp + 0x58], ecx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x5c]
add edx, eax
add edx, edx
add edx, dword [esp + 0x4c]
mov dword [esp + 0x60], edx
mov ecx, dword [esp + 0x60]
movzx edx, word [ecx]
cmp esi, 0x1000000
jae 0x5f947a
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f94a8
mov esi, ecx
mov ecx, 0x800
sub ecx, edx
shr ecx, 5
add cx, dx
mov edx, dword [esp + 0x60]
mov word [edx], cx
add eax, eax
mov edx, dword [esp + 0x5c]
xor dword [esp + 0x58], edx
jmp 0x5f94bf
sub esi, ecx
sub edi, ecx
mov ecx, edx
lea eax, [eax + eax + 1]
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x60]
mov word [ecx], dx
mov edx, dword [esp + 0x54]
add dword [esp + 0x54], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x5c], edx
mov ecx, dword [esp + 0x54]
and dword [esp + 0x58], ecx
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x5c]
add edx, eax
add edx, edx
add edx, dword [esp + 0x4c]
mov dword [esp + 0x60], edx
mov ecx, dword [esp + 0x60]
movzx edx, word [ecx]
cmp esi, 0x1000000
jae 0x5f950d
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f9533
mov esi, ecx
mov ecx, 0x800
sub ecx, edx
shr ecx, 5
add cx, dx
mov edx, dword [esp + 0x60]
add eax, eax
mov word [edx], cx
jmp 0x5f954a
sub esi, ecx
sub edi, ecx
mov ecx, edx
lea eax, [eax + eax + 1]
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x60]
mov word [ecx], dx
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
mov byte [edx + ecx], al
inc dword [esp + 0x38]
jmp 0x5fa30c
mov eax, edx
sub esi, ecx
shr eax, 5
sub edi, ecx
sub dx, ax
mov eax, dword [esp + 0x4c]
mov word [eax], dx
mov edx, dword [esp + 0x10]
add edx, edx
add edx, dword [esp + 0xc]
add edx, 0x20
cmp esi, 0x1000000
mov dword [esp + 0x4c], edx
mov ecx, dword [esp + 0x4c]
movzx edx, word [ecx]
jae 0x5f95a5
mov eax, dword [esp + 0x48]
xor ecx, ecx
shl edi, 8
shl esi, 8
mov cl, byte [eax]
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f95df
mov esi, ecx
mov eax, 0x800
sub eax, edx
shr eax, 5
add ax, dx
mov edx, dword [esp + 0x4c]
mov word [edx], ax
add dword [esp + 0x10], 0xc
mov ecx, dword [esp + 0xc]
add ecx, 0xfffffa00
mov dword [esp + 0x4c], ecx
jmp 0x5f985b
mov eax, edx
sub esi, ecx
shr eax, 5
sub edi, ecx
sub dx, ax
mov ecx, dword [esp + 0x4c]
mov word [ecx], dx
mov edx, dword [esp + 0x10]
add edx, edx
add edx, dword [esp + 0xc]
add edx, 0x38
cmp esi, 0x1000000
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x4c]
movzx edx, word [eax]
jae 0x5f9626
mov ecx, dword [esp + 0x48]
xor eax, eax
shl edi, 8
shl esi, 8
mov al, byte [ecx]
or edi, eax
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f9713
mov esi, ecx
mov eax, 0x800
sub eax, edx
shr eax, 5
add ax, dx
mov edx, dword [esp + 0x4c]
mov word [edx], ax
mov ecx, dword [esp + 0x50]
add ecx, dword [esp + 0x10]
add ecx, ecx
add ecx, dword [esp + 0xc]
add ecx, 0xfffff400
mov dword [esp + 0x4c], ecx
mov eax, dword [esp + 0x4c]
movzx edx, word [eax]
cmp esi, 0x1000000
jae 0x5f9687
mov ecx, dword [esp + 0x48]
xor eax, eax
shl edi, 8
shl esi, 8
mov al, byte [ecx]
or edi, eax
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f96fb
mov eax, 0x800
mov esi, ecx
sub eax, edx
shr eax, 5
add ax, dx
mov edx, dword [esp + 0x4c]
mov word [edx], ax
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x38]
sub ecx, dword [esp + 0x14]
cmp eax, dword [esp + 0x14]
jae 0x5f96c1
mov edx, dword [esp + 0x34]
jmp 0x5f96c3
xor edx, edx
add ecx, edx
mov eax, dword [esp + 0x30]
mov cl, byte [eax + ecx]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
mov byte [eax + edx], cl
inc dword [esp + 0x38]
inc dword [esp + 0x3c]
cmp dword [esp + 0x10], 7
jae 0x5f96ed
mov ecx, 9
jmp 0x5f96f2
mov ecx, 0xb
mov dword [esp + 0x10], ecx
jmp 0x5fa30c
mov eax, edx
sub esi, ecx
shr eax, 5
sub edi, ecx
sub dx, ax
mov eax, dword [esp + 0x4c]
mov word [eax], dx
jmp 0x5f9837
sub esi, ecx
sub edi, ecx
mov ecx, edx
mov eax, dword [esp + 0x4c]
shr ecx, 5
sub dx, cx
mov word [eax], dx
mov edx, dword [esp + 0x10]
add edx, edx
add edx, dword [esp + 0xc]
add edx, 0x50
cmp esi, 0x1000000
mov dword [esp + 0x4c], edx
mov ecx, dword [esp + 0x4c]
movzx edx, word [ecx]
jae 0x5f975a
mov eax, dword [esp + 0x48]
xor ecx, ecx
shl edi, 8
shl esi, 8
mov cl, byte [eax]
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f9789
mov esi, ecx
mov eax, 0x800
sub eax, edx
shr eax, 5
add ax, dx
mov edx, dword [esp + 0x4c]
mov word [edx], ax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x64], ecx
jmp 0x5f9827
mov eax, edx
sub esi, ecx
shr eax, 5
sub edi, ecx
sub dx, ax
mov ecx, dword [esp + 0x4c]
mov word [ecx], dx
mov edx, dword [esp + 0x10]
add edx, edx
add edx, dword [esp + 0xc]
add edx, 0x68
cmp esi, 0x1000000
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x4c]
movzx edx, word [eax]
jae 0x5f97d0
mov ecx, dword [esp + 0x48]
xor eax, eax
shl edi, 8
shl esi, 8
mov al, byte [ecx]
or edi, eax
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f97fc
mov esi, ecx
mov eax, 0x800
sub eax, edx
shr eax, 5
add ax, dx
mov edx, dword [esp + 0x4c]
mov word [edx], ax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x64], ecx
jmp 0x5f981f
mov eax, edx
sub esi, ecx
shr eax, 5
sub edi, ecx
sub dx, ax
mov ecx, dword [esp + 0x4c]
mov word [ecx], dx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x64], edx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x18]
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x64]
mov dword [esp + 0x14], eax
cmp dword [esp + 0x10], 7
jae 0x5f9845
mov edx, 8
jmp 0x5f984a
mov edx, 0xb
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0xc]
add eax, 0xfffff600
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
movzx edx, word [eax]
cmp esi, 0x1000000
jae 0x5f987d
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f9a0e
mov esi, ecx
mov ecx, 0x800
sub ecx, edx
shr ecx, 5
add cx, dx
mov word [eax], cx
mov eax, dword [esp + 0x50]
add eax, eax
add eax, dword [esp + 0x4c]
mov dword [esp + 0x44], 1
mov edx, dword [esp + 0x44]
movzx edx, word [eax + edx*2]
cmp esi, 0x1000000
jae 0x5f98d4
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f9901
mov ebx, 0x800
mov esi, ecx
sub ebx, edx
mov ecx, dword [esp + 0x44]
shr ebx, 5
add bx, dx
mov word [eax + ecx*2], bx
mov edx, dword [esp + 0x44]
add dword [esp + 0x44], edx
jmp 0x5f9922
sub esi, ecx
sub edi, ecx
mov ecx, edx
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x44]
mov word [eax + ecx*2], dx
mov edx, dword [esp + 0x44]
add edx, dword [esp + 0x44]
inc edx
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x44]
movzx edx, word [eax + edx*2]
cmp esi, 0x1000000
jae 0x5f9945
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f9972
mov ebx, 0x800
mov esi, ecx
sub ebx, edx
mov ecx, dword [esp + 0x44]
shr ebx, 5
add bx, dx
mov word [eax + ecx*2], bx
mov edx, dword [esp + 0x44]
add dword [esp + 0x44], edx
jmp 0x5f9993
sub esi, ecx
sub edi, ecx
mov ecx, edx
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x44]
mov word [eax + ecx*2], dx
mov edx, dword [esp + 0x44]
add edx, dword [esp + 0x44]
inc edx
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x44]
movzx edx, word [eax + edx*2]
cmp esi, 0x1000000
jae 0x5f99b6
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f99e3
mov ebx, 0x800
mov esi, ecx
sub ebx, edx
mov ecx, dword [esp + 0x44]
shr ebx, 5
add bx, dx
mov word [eax + ecx*2], bx
mov eax, dword [esp + 0x44]
add dword [esp + 0x44], eax
jmp 0x5f9a04
sub esi, ecx
sub edi, ecx
mov ecx, edx
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x44]
mov word [eax + ecx*2], dx
mov eax, dword [esp + 0x44]
add eax, dword [esp + 0x44]
inc eax
mov dword [esp + 0x44], eax
sub dword [esp + 0x44], 8
jmp 0x5f9c7c
sub esi, ecx
sub edi, ecx
mov ecx, edx
shr ecx, 5
sub dx, cx
mov word [eax], dx
mov eax, dword [esp + 0x4c]
add eax, 0x10
movzx edx, word [eax]
cmp esi, 0x1000000
jae 0x5f9a42
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f9bd4
mov esi, ecx
mov ecx, 0x800
sub ecx, edx
shr ecx, 5
add cx, dx
mov word [eax], cx
mov eax, dword [esp + 0x50]
add eax, eax
add eax, dword [esp + 0x4c]
mov dword [esp + 0x44], 1
add eax, 0x10
mov edx, dword [esp + 0x44]
cmp esi, 0x1000000
movzx edx, word [eax + edx*2]
jae 0x5f9a9c
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f9ac9
mov ebx, 0x800
mov esi, ecx
sub ebx, edx
mov ecx, dword [esp + 0x44]
shr ebx, 5
add bx, dx
mov word [eax + ecx*2], bx
mov edx, dword [esp + 0x44]
add dword [esp + 0x44], edx
jmp 0x5f9aea
sub esi, ecx
sub edi, ecx
mov ecx, edx
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x44]
mov word [eax + ecx*2], dx
mov edx, dword [esp + 0x44]
add edx, dword [esp + 0x44]
inc edx
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x44]
movzx edx, word [eax + edx*2]
cmp esi, 0x1000000
jae 0x5f9b0d
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f9b3a
mov ebx, 0x800
mov esi, ecx
sub ebx, edx
mov ecx, dword [esp + 0x44]
shr ebx, 5
add bx, dx
mov word [eax + ecx*2], bx
mov edx, dword [esp + 0x44]
add dword [esp + 0x44], edx
jmp 0x5f9b5b
sub esi, ecx
sub edi, ecx
mov ecx, edx
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x44]
mov word [eax + ecx*2], dx
mov edx, dword [esp + 0x44]
add edx, dword [esp + 0x44]
inc edx
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x44]
movzx edx, word [eax + edx*2]
cmp esi, 0x1000000
jae 0x5f9b7e
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f9bae
mov ebx, 0x800
mov esi, ecx
sub ebx, edx
mov ecx, dword [esp + 0x44]
shr ebx, 5
add bx, dx
mov word [eax + ecx*2], bx
mov eax, dword [esp + 0x44]
add dword [esp + 0x44], eax
jmp 0x5f9c7c
sub esi, ecx
sub edi, ecx
mov ecx, edx
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x44]
mov word [eax + ecx*2], dx
mov eax, dword [esp + 0x44]
add eax, dword [esp + 0x44]
inc eax
mov dword [esp + 0x44], eax
jmp 0x5f9c7c
sub esi, ecx
sub edi, ecx
mov ecx, edx
shr ecx, 5
sub dx, cx
mov word [eax], dx
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x44], 1
add eax, 0x200
mov edx, dword [esp + 0x44]
movzx edx, word [eax + edx*2]
cmp esi, 0x1000000
jae 0x5f9c17
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f9c44
mov ebx, 0x800
mov esi, ecx
sub ebx, edx
mov ecx, dword [esp + 0x44]
shr ebx, 5
add bx, dx
mov word [eax + ecx*2], bx
mov edx, dword [esp + 0x44]
add dword [esp + 0x44], edx
jmp 0x5f9c65
sub esi, ecx
sub edi, ecx
mov ecx, edx
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x44]
mov word [eax + ecx*2], dx
mov edx, dword [esp + 0x44]
add edx, dword [esp + 0x44]
inc edx
mov dword [esp + 0x44], edx
cmp dword [esp + 0x44], 0x100
jb 0x5f9bf4
sub dword [esp + 0x44], 0x100
add dword [esp + 0x44], 0x10
cmp dword [esp + 0x10], 0xc
jb 0x5fa255
cmp dword [esp + 0x44], 4
jae 0x5f9c94
mov eax, dword [esp + 0x44]
jmp 0x5f9c99
mov eax, 3
shl eax, 6
add eax, eax
add eax, dword [esp + 0xc]
add eax, 0x80
mov dword [esp + 0x4c], eax
mov eax, 1
mov edx, dword [esp + 0x4c]
movzx edx, word [edx + eax*2]
cmp esi, 0x1000000
jae 0x5f9cd3
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f9cfa
mov ebx, 0x800
mov esi, ecx
sub ebx, edx
mov ecx, dword [esp + 0x4c]
shr ebx, 5
add bx, dx
mov word [ecx + eax*2], bx
add eax, eax
jmp 0x5f9d12
sub esi, ecx
sub edi, ecx
mov ecx, edx
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x4c]
mov word [ecx + eax*2], dx
lea eax, [eax + eax + 1]
mov edx, dword [esp + 0x4c]
movzx edx, word [edx + eax*2]
cmp esi, 0x1000000
jae 0x5f9d35
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f9d5c
mov ebx, 0x800
mov esi, ecx
sub ebx, edx
mov ecx, dword [esp + 0x4c]
shr ebx, 5
add bx, dx
mov word [ecx + eax*2], bx
add eax, eax
jmp 0x5f9d74
sub esi, ecx
sub edi, ecx
mov ecx, edx
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x4c]
mov word [ecx + eax*2], dx
lea eax, [eax + eax + 1]
mov edx, dword [esp + 0x4c]
movzx edx, word [edx + eax*2]
cmp esi, 0x1000000
jae 0x5f9d97
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f9dbe
mov ebx, 0x800
mov esi, ecx
sub ebx, edx
mov ecx, dword [esp + 0x4c]
shr ebx, 5
add bx, dx
mov word [ecx + eax*2], bx
add eax, eax
jmp 0x5f9dd6
sub esi, ecx
sub edi, ecx
mov ecx, edx
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x4c]
mov word [ecx + eax*2], dx
lea eax, [eax + eax + 1]
mov edx, dword [esp + 0x4c]
movzx edx, word [edx + eax*2]
cmp esi, 0x1000000
jae 0x5f9df9
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f9e20
mov ebx, 0x800
mov esi, ecx
sub ebx, edx
mov ecx, dword [esp + 0x4c]
shr ebx, 5
add bx, dx
mov word [ecx + eax*2], bx
add eax, eax
jmp 0x5f9e38
sub esi, ecx
sub edi, ecx
mov ecx, edx
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x4c]
mov word [ecx + eax*2], dx
lea eax, [eax + eax + 1]
mov edx, dword [esp + 0x4c]
movzx edx, word [edx + eax*2]
cmp esi, 0x1000000
jae 0x5f9e5b
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f9e82
mov ebx, 0x800
mov esi, ecx
sub ebx, edx
mov ecx, dword [esp + 0x4c]
shr ebx, 5
add bx, dx
mov word [ecx + eax*2], bx
add eax, eax
jmp 0x5f9e9a
sub esi, ecx
sub edi, ecx
mov ecx, edx
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x4c]
mov word [ecx + eax*2], dx
lea eax, [eax + eax + 1]
mov edx, dword [esp + 0x4c]
movzx edx, word [edx + eax*2]
cmp esi, 0x1000000
jae 0x5f9ebd
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f9ee4
mov ebx, 0x800
mov esi, ecx
sub ebx, edx
mov ecx, dword [esp + 0x4c]
shr ebx, 5
add bx, dx
mov word [ecx + eax*2], bx
add eax, eax
jmp 0x5f9efc
sub esi, ecx
sub edi, ecx
mov ecx, edx
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x4c]
mov word [ecx + eax*2], dx
lea eax, [eax + eax + 1]
sub eax, 0x40
cmp eax, 4
jb 0x5fa1fd
mov edx, eax
mov dword [esp + 0x68], eax
shr edx, 1
and eax, 1
dec edx
or eax, 2
mov dword [esp + 0x6c], edx
cmp dword [esp + 0x68], 0xe
jae 0x5f9fc6
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0xc]
shl eax, cl
add edx, 0xfffff300
mov dword [esp + 0x4c], edx
mov dword [esp + 0x70], 1
inc eax
mov edx, dword [esp + 0x4c]
movzx edx, word [edx + eax*2]
cmp esi, 0x1000000
jae 0x5f9f66
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5f9f97
mov ebx, 0x800
mov esi, ecx
sub ebx, edx
mov ecx, dword [esp + 0x4c]
shr ebx, 5
add bx, dx
mov word [ecx + eax*2], bx
add eax, dword [esp + 0x70]
mov edx, dword [esp + 0x70]
add dword [esp + 0x70], edx
jmp 0x5f9fb7
sub esi, ecx
sub edi, ecx
mov ecx, edx
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x4c]
mov word [ecx + eax*2], dx
mov edx, dword [esp + 0x70]
add dword [esp + 0x70], edx
add eax, dword [esp + 0x70]
dec dword [esp + 0x6c]
jne 0x5f9f43
sub eax, dword [esp + 0x70]
jmp 0x5fa1fd
sub dword [esp + 0x6c], 4
cmp esi, 0x1000000
jae 0x5f9fe7
mov edx, dword [esp + 0x48]
xor ecx, ecx
shl edi, 8
shl esi, 8
mov cl, byte [edx]
or edi, ecx
inc dword [esp + 0x48]
shr esi, 1
sub edi, esi
xor ecx, ecx
mov edx, edi
add eax, eax
shr edx, 0x1f
sub ecx, edx
mov dword [esp + 0x74], ecx
add eax, dword [esp + 0x74]
mov edx, dword [esp + 0x74]
and edx, esi
inc eax
add edi, edx
dec dword [esp + 0x6c]
jne 0x5f9fcb
mov ecx, dword [esp + 0xc]
shl eax, 4
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x78], 1
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x78]
movzx edx, word [edx + ecx*2]
cmp esi, 0x1000000
jae 0x5fa047
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5fa074
mov ebp, 0x800
mov esi, ecx
sub ebp, edx
mov ecx, dword [esp + 0x4c]
shr ebp, 5
mov ebx, dword [esp + 0x78]
add bp, dx
mov word [ecx + ebx*2], bp
inc dword [esp + 0x78]
jmp 0x5fa091
sub esi, ecx
sub edi, ecx
mov ecx, edx
mov ebx, dword [esp + 0x78]
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x4c]
mov word [ecx + ebx*2], dx
add dword [esp + 0x78], 2
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x78]
movzx edx, word [edx + ecx*2]
cmp esi, 0x1000000
jae 0x5fa0b8
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5fa0e6
mov ebp, 0x800
mov esi, ecx
sub ebp, edx
mov ecx, dword [esp + 0x4c]
shr ebp, 5
mov ebx, dword [esp + 0x78]
add bp, dx
mov word [ecx + ebx*2], bp
add dword [esp + 0x78], 2
jmp 0x5fa103
sub esi, ecx
sub edi, ecx
mov ecx, edx
mov ebx, dword [esp + 0x78]
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x4c]
mov word [ecx + ebx*2], dx
add dword [esp + 0x78], 4
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x78]
movzx edx, word [edx + ecx*2]
cmp esi, 0x1000000
jae 0x5fa12a
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5fa158
mov ebp, 0x800
mov esi, ecx
sub ebp, edx
mov ecx, dword [esp + 0x4c]
shr ebp, 5
mov ebx, dword [esp + 0x78]
add bp, dx
mov word [ecx + ebx*2], bp
add dword [esp + 0x78], 4
jmp 0x5fa175
sub esi, ecx
sub edi, ecx
mov ecx, edx
mov ebx, dword [esp + 0x78]
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x4c]
mov word [ecx + ebx*2], dx
add dword [esp + 0x78], 8
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x78]
movzx edx, word [edx + ecx*2]
cmp esi, 0x1000000
jae 0x5fa19c
mov ecx, dword [esp + 0x48]
shl edi, 8
movzx ecx, byte [ecx]
shl esi, 8
or edi, ecx
inc dword [esp + 0x48]
mov ecx, esi
shr ecx, 0xb
imul ecx, edx
cmp ecx, edi
jbe 0x5fa1ca
mov ebp, 0x800
mov esi, ecx
sub ebp, edx
mov ecx, dword [esp + 0x4c]
shr ebp, 5
mov ebx, dword [esp + 0x78]
add bp, dx
mov word [ecx + ebx*2], bp
sub dword [esp + 0x78], 8
jmp 0x5fa1e2
sub esi, ecx
sub edi, ecx
mov ecx, edx
mov ebx, dword [esp + 0x78]
shr ecx, 5
sub dx, cx
mov ecx, dword [esp + 0x4c]
mov word [ecx + ebx*2], dx
or eax, dword [esp + 0x78]
cmp eax, 0xffffffff
jne 0x5fa1fd
mov dword [esp + 0x44], 0x112
sub dword [esp + 0x10], 0xc
jmp 0x5fa324
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], ecx
lea ecx, [eax + 1]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], ecx
cmp dword [esp + 0x10], 0x13
jae 0x5fa22a
mov edx, 7
jmp 0x5fa22f
mov edx, 0xa
mov dword [esp + 0x10], edx
cmp dword [esp + 0x40], 0
jne 0x5fa240
mov ecx, dword [esp + 0x3c]
jmp 0x5fa244
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jb 0x5fa255
add dword [esp + 0x44], 0x202
jmp 0x5fa324
add dword [esp + 0x44], 2
mov eax, dword [esp + 4]
sub eax, dword [esp + 0x38]
mov dword [esp + 0x7c], eax
test eax, eax
je 0x5fa324
mov edx, dword [esp + 0x7c]
cmp edx, dword [esp + 0x44]
jae 0x5fa27e
mov eax, dword [esp + 0x7c]
jmp 0x5fa282
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
sub edx, dword [esp + 0x14]
cmp ecx, dword [esp + 0x14]
jae 0x5fa29a
mov ecx, dword [esp + 0x34]
jmp 0x5fa29c
xor ecx, ecx
add edx, ecx
add dword [esp + 0x3c], eax
sub dword [esp + 0x44], eax
mov ecx, dword [esp + 0x34]
sub ecx, edx
cmp eax, ecx
ja 0x5fa2ea
mov ecx, dword [esp + 0x30]
add ecx, dword [esp + 0x38]
sub edx, dword [esp + 0x38]
mov dword [esp + 0x80], edx
mov edx, eax
add edx, ecx
mov dword [esp + 0x84], edx
add dword [esp + 0x38], eax
mov eax, dword [esp + 0x80]
mov al, byte [ecx + eax]
mov byte [ecx], al
inc ecx
cmp ecx, dword [esp + 0x84]
jne 0x5fa2d2
jmp 0x5fa30c
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x38]
mov cl, byte [ecx + edx]
inc edx
mov byte [ebx + ebp], cl
inc dword [esp + 0x38]
cmp edx, dword [esp + 0x34]
jne 0x5fa309
xor edx, edx
dec eax
jne 0x5fa2ea
mov eax, dword [esp + 0x38]
cmp eax, dword [esp + 4]
jae 0x5fa324
mov ecx, dword [esp + 0x48]
cmp ecx, dword [esp + 8]
jb 0x5f8c6a
cmp esi, 0x1000000
jae 0x5fa340
mov eax, dword [esp + 0x48]
xor edx, edx
shl edi, 8
shl esi, 8
mov dl, byte [eax]
or edi, edx
inc dword [esp + 0x48]
mov ecx, dword [esp]
mov eax, dword [esp + 0x48]
mov dword [ecx + 0x1c], eax
mov edx, dword [esp]
mov dword [edx + 0x20], esi
mov ecx, dword [esp]
mov dword [ecx + 0x24], edi
mov eax, dword [esp]
mov edx, dword [esp + 0x44]
mov dword [eax + 0x44], edx
mov ecx, dword [esp]
mov eax, dword [esp + 0x38]
mov dword [ecx + 0x18], eax
mov edx, dword [esp]
mov ecx, dword [esp + 0x3c]
mov dword [edx + 0x28], ecx
mov eax, dword [esp]
mov edx, dword [esp + 0x14]
mov dword [eax + 0x30], edx
mov ecx, dword [esp]
mov eax, dword [esp + 0x18]
mov dword [ecx + 0x34], eax
mov edx, dword [esp]
mov ecx, dword [esp + 0x1c]
mov dword [edx + 0x38], ecx
mov eax, dword [esp]
mov edx, dword [esp + 0x20]
mov dword [eax + 0x3c], edx
mov ecx, dword [esp]
mov eax, dword [esp + 0x10]
mov dword [ecx + 0x40], eax
cmp dword [esp + 0x44], 0x200
jb 0x5fa3b7
mov eax, 1
jmp 0x5fa3b9
xor eax, eax
add esp, 0x88
pop ebp
pop edi
pop esi
pop ebx
ret