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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xe4
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
push 0
push 0x6b576c
push 0x6b5b1c
mov edi, ecx
push 0
push ebx
mov dword [esp + 0x68], edi
mov byte [ebx + 4], 1
call fcn.00627068
add esp, 0x14
push 0
push 0x6b578c
push 0x6b5b1c
mov esi, eax
push 0
push ebx
mov dword [esp + 0x34], esi
call fcn.00627068
add esp, 0x14
test esi, esi
mov dword [esp + 0x14], eax
je 0x57b7f0
mov eax, dword [esi]
mov edx, dword [eax + 0x68]
mov ecx, esi
call edx
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x68], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x6c], ecx
lea ecx, [eax + edx]
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x70], ecx
mov ecx, dword [ebx + 0xc]
add edx, ecx
mov dword [esp + 0x74], edx
mov edx, dword [ebx]
mov dword [esp + 0x78], edx
mov edx, dword [ebx + 4]
mov dword [esp + 0x7c], edx
mov edx, dword [ebx]
add edx, eax
mov eax, dword [ebx + 4]
add eax, ecx
cmp byte [esi + 0x53], 0
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], eax
je 0x578be5
mov eax, dword [esp + 0x14]
test eax, eax
je 0x577e2f
cmp dword [eax + 0x70], 0
jne 0x578be5
cmp byte [edi + 0x75], 0
jne 0x578be5
mov eax, dword [ebp + 0x18]
call fcn.0056a440
test al, al
je 0x578be5
mov eax, dword [esi + 0x48]
test eax, eax
mov dword [esp + 0x34], eax
jne 0x578510
mov eax, dword [esi]
mov edx, dword [eax + 0x7c]
mov ecx, esi
call edx
cmp byte [edi + 0x75], 0
mov esi, eax
jne 0x57b7f0
mov eax, edi
call fcn.005726f0
mov eax, dword [edi]
mov edx, dword [eax + 0xbc]
mov ecx, edi
call edx
test al, al
je 0x57b7f0
mov eax, dword [edi + 0xd4]
cmp eax, 0x10
jne 0x57824e
mov eax, dword [edi + 0x90]
imul eax, dword [ebp + 0x10]
mov ecx, dword [edi + 0xa4]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp + 0xc]
lea edx, [ecx + eax*2]
mov eax, dword [ebx + 4]
mov ecx, dword [ebp + 8]
imul eax, dword [ecx + 0x24]
add eax, dword [ebx]
mov dword [esp + 0x28], edx
lea edx, [esi + eax*4]
mov eax, dword [edi + 0xd8]
mov esi, dword [edi + 0xdc]
mov edi, dword [edi + 0xe0]
mov dword [esp + 0x10], eax
shr eax, 1
mov dword [esp + 0x48], eax
mov eax, esi
shr eax, 1
mov dword [esp + 0x2c], eax
mov eax, edi
shr eax, 1
cmp byte [0x6ba084], 0
mov dword [esp + 0x38], edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], eax
je 0x5780f9
cmp esi, 0x7e0
jne 0x578001
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x18], 0
jle 0x5784f9
mov esi, ebx
mov ecx, dword [esi + 8]
test ecx, ecx
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x10], 0
jle 0x577fab
movzx eax, word [edi]
mov ecx, dword [ebx]
mov edx, eax
shl edx, 0x10
or edx, eax
mov eax, ecx
and eax, 0xfc00
shl eax, 0xb
mov esi, ecx
shr esi, 3
and esi, 0x1f
add eax, esi
mov esi, ecx
shr esi, 8
and esi, 0xf800
add eax, esi
mov esi, dword [ebp + 0x14]
shr ecx, 0x1b
and edx, 0x7e0f81f
sub eax, edx
imul eax, ecx
shr eax, 5
add eax, edx
and eax, 0x7e0f81f
mov ecx, eax
shr ecx, 0x10
or ecx, eax
mov eax, dword [esp + 0x10]
mov word [edi], cx
mov ecx, dword [esi + 8]
add eax, 1
add ebx, 4
add edi, 2
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x577f41
mov edx, dword [esp + 0x54]
mov eax, dword [edx + 0x90]
cdq
sub eax, edx
mov edx, dword [esp + 0x28]
sar eax, 1
lea eax, [edx + eax*2]
mov edx, dword [ebp + 8]
mov dword [esp + 0x28], eax
mov eax, dword [edx + 0x24]
mov edx, dword [esp + 0x38]
lea eax, [edx + eax*4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x18]
add eax, 1
cmp eax, dword [esi + 0xc]
mov dword [esp + 0x18], eax
jl 0x577f2d
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc0]
call edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp esi, 0x3e0
jne 0x5780f9
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x18], 0
jle 0x5784f9
mov esi, ebx
mov ecx, dword [esi + 8]
test ecx, ecx
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x10], 0
jle 0x5780a3
movzx eax, word [edi]
mov ecx, dword [ebx]
mov edx, eax
shl edx, 0x10
or edx, eax
mov eax, ecx
shr eax, 3
and eax, 0x1f
mov esi, ecx
shr esi, 9
and esi, 0x7c00
add eax, esi
mov esi, ecx
and esi, 0xf800
shl esi, 0xa
add eax, esi
mov esi, dword [ebp + 0x14]
shr ecx, 0x1b
and edx, 0x3e07c1f
sub eax, edx
imul eax, ecx
shr eax, 5
add eax, edx
and eax, 0x3e07c1f
mov ecx, eax
shr ecx, 0x10
or ecx, eax
mov eax, dword [esp + 0x10]
mov word [edi], cx
mov ecx, dword [esi + 8]
add eax, 1
add ebx, 4
add edi, 2
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x578038
mov edx, dword [esp + 0x54]
mov eax, dword [edx + 0x90]
cdq
sub eax, edx
mov edx, dword [esp + 0x28]
sar eax, 1
lea eax, [edx + eax*2]
mov edx, dword [ebp + 8]
mov dword [esp + 0x28], eax
mov eax, dword [edx + 0x24]
mov edx, dword [esp + 0x38]
lea eax, [edx + eax*4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x18]
add eax, 1
cmp eax, dword [esi + 0xc]
mov dword [esp + 0x18], eax
jl 0x578024
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc0]
call edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x34], 0
jle 0x5784f9
mov ecx, ebx
mov ecx, dword [ecx + 8]
mov ebx, dword [esp + 0x28]
mov edi, edx
test ecx, ecx
mov eax, ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], 0
jle 0x5781fd
jmp 0x578134
mov edi, dword [esp + 0x24]
mov edx, dword [edi]
movzx eax, word [eax]
add edi, 4
mov dword [esp + 0x24], edi
mov ecx, edx
shr ecx, 0x18
mov edi, pe_nt_image_headers32
sub edi, ecx
mov dword [esp + 0x20], edi
movzx edi, dh
imul edi, ecx
imul edi, esi
mov ebx, eax
and ebx, esi
imul ebx, dword [esp + 0x20]
mov esi, edx
shr esi, 0x10
and esi, 0xff
imul esi, ecx
shr edi, 8
add edi, dword [esp + 0x2c]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x10]
add ebx, edi
imul esi, edx
mov edi, eax
and edi, edx
imul edi, dword [esp + 0x20]
shr esi, 8
add esi, dword [esp + 0x48]
shr ebx, 8
add edi, esi
shr edi, 8
and edi, edx
movzx edx, byte [esp + 0x58]
imul edx, ecx
mov ecx, dword [esp + 0x5c]
and ebx, dword [esp + 0x30]
imul edx, ecx
and eax, ecx
imul eax, dword [esp + 0x20]
mov esi, dword [esp + 0x30]
shr edx, 8
add edx, dword [esp + 0x60]
add ebx, edi
add eax, edx
mov edx, dword [esp + 0x14]
shr eax, 8
and eax, ecx
mov ecx, dword [ebp + 0x14]
add ebx, eax
mov eax, dword [esp + 0x18]
mov word [eax], bx
mov ecx, dword [ecx + 8]
add edx, 1
add eax, 2
cmp edx, ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
jl 0x578130
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x54]
mov eax, dword [edx + 0x90]
cdq
sub eax, edx
sar eax, 1
lea ebx, [ebx + eax*2]
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x24]
mov eax, dword [esp + 0x34]
lea edi, [edi + edx*4]
mov edx, dword [ebp + 0x14]
add eax, 1
cmp eax, dword [edx + 0xc]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x38], edi
mov dword [esp + 0x34], eax
jl 0x578116
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc0]
call edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp eax, 0x20
jne 0x5784f9
mov ecx, edi
mov eax, dword [ecx + 0x90]
imul eax, dword [ebp + 0x10]
cdq
and edx, 3
add eax, edx
mov edx, dword [ecx + 0xa4]
sar eax, 2
add eax, dword [ebp + 0xc]
lea edi, [edx + eax*4]
mov edx, ebx
mov ebx, dword [ebp + 8]
mov eax, dword [edx + 4]
imul eax, dword [ebx + 0x24]
add eax, dword [edx]
mov ebx, dword [ecx + 0xdc]
lea esi, [esi + eax*4]
mov eax, dword [ecx + 0xd8]
mov ecx, dword [ecx + 0xe0]
mov dword [esp + 0x10], eax
shr eax, 1
mov dword [esp + 0x2c], eax
mov eax, ebx
shr eax, 1
mov dword [esp + 0x24], eax
mov eax, ecx
shr eax, 1
cmp byte [0x6ba084], 0
mov dword [esp + 0x14], edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x40], ebx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], eax
je 0x5783bf
cmp dword [edx + 0xc], 0
mov dword [esp + 0x18], 0
jle 0x5784f9
mov ebx, edx
mov ecx, dword [ebx + 8]
test ecx, ecx
mov dword [esp + 0x10], 0
jle 0x57836d
sub esi, edi
mov dword [esp + 0x20], esi
jmp 0x578305
mov esi, dword [esp + 0x20]
mov eax, dword [esi + edi]
mov ecx, dword [edi]
mov ebx, eax
mov edx, eax
and ebx, 0xff00ff
and eax, 0xff00
mov esi, ecx
and ecx, 0xff00
sub eax, ecx
and esi, 0xff00ff
sub ebx, esi
shr edx, 0x18
imul ebx, edx
imul eax, edx
shr ebx, 8
shr eax, 8
add eax, ecx
add ebx, esi
and eax, 0xff00
and ebx, 0xff00ff
or ebx, eax
mov eax, dword [esp + 0x10]
mov dword [edi], ebx
mov ebx, dword [ebp + 0x14]
mov ecx, dword [ebx + 8]
add eax, 1
add edi, 4
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x578301
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0x54]
mov eax, dword [edx + 0x90]
cdq
and edx, 3
add eax, edx
sar eax, 2
lea edi, [edi + eax*4]
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x24]
mov eax, dword [esp + 0x18]
add eax, 1
cmp eax, dword [ebx + 0xc]
lea esi, [esi + edx*4]
mov dword [esp + 0x14], edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x18], eax
jl 0x5782e9
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc0]
call edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp dword [edx + 0xc], 0
mov dword [esp + 0x38], 0
jle 0x5784f9
mov eax, edx
mov ecx, dword [eax + 8]
test ecx, ecx
mov eax, edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x28], 0
jle 0x5784bb
mov ecx, esi
sub ecx, edi
mov dword [esp + 0x20], ecx
jmp 0x5783fa
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + eax]
mov eax, dword [eax]
mov ecx, edx
shr ecx, 0x18
mov esi, pe_nt_image_headers32
sub esi, ecx
mov dword [esp + 0x30], esi
movzx esi, dh
imul esi, ecx
shr esi, 8
imul esi, ebx
add esi, dword [esp + 0x24]
mov edi, eax
and edi, ebx
imul edi, dword [esp + 0x30]
add edi, esi
mov esi, edx
shr esi, 0x10
and esi, 0xff
imul esi, ecx
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x10]
mov ebx, eax
and ebx, edx
imul ebx, dword [esp + 0x30]
shr esi, 8
imul esi, edx
add esi, dword [esp + 0x2c]
shr edi, 8
add ebx, esi
shr ebx, 8
and ebx, edx
movzx edx, byte [esp + 0x48]
imul edx, ecx
mov ecx, dword [esp + 0x58]
and edi, dword [esp + 0x40]
and eax, ecx
imul eax, dword [esp + 0x30]
shr edx, 8
imul edx, ecx
add edx, dword [esp + 0x5c]
add edi, ebx
mov ebx, dword [esp + 0x40]
add eax, edx
mov edx, dword [esp + 0x28]
shr eax, 8
and eax, ecx
mov ecx, dword [ebp + 0x14]
add edi, eax
mov eax, dword [esp + 0x18]
mov dword [eax], edi
mov ecx, dword [ecx + 8]
add edx, 1
add eax, 4
cmp edx, ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], edx
jl 0x5783f6
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x54]
mov eax, dword [edx + 0x90]
cdq
and edx, 3
add eax, edx
sar eax, 2
lea edi, [edi + eax*4]
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x24]
mov eax, dword [esp + 0x38]
lea esi, [esi + edx*4]
mov edx, dword [ebp + 0x14]
add eax, 1
cmp eax, dword [edx + 0xc]
mov dword [esp + 0x14], edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], eax
jl 0x5783d6
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc0]
call edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov esi, dword [esi + 0x4c]
mov eax, edi
mov dword [esp + 0x24], esi
call fcn.005726f0
mov eax, dword [edi]
mov edx, dword [eax + 0xbc]
mov ecx, edi
call edx
test al, al
je 0x57b7f0
mov eax, dword [edi + 0xd4]
cmp eax, 0x10
jne 0x578911
mov eax, dword [edi + 0x90]
imul eax, dword [ebp + 0x10]
mov ecx, dword [edi + 0xa4]
mov esi, dword [ebx + 4]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp + 0xc]
lea edx, [ecx + eax*2]
mov eax, dword [ebp + 8]
imul esi, dword [eax + 0x24]
mov eax, dword [edi + 0xd8]
mov ecx, dword [edi + 0xdc]
add esi, dword [ebx]
mov edi, dword [edi + 0xe0]
add esi, dword [esp + 0x24]
mov dword [esp + 0x10], eax
shr eax, 1
mov dword [esp + 0x48], eax
mov eax, ecx
shr eax, 1
mov dword [esp + 0x2c], eax
mov eax, edi
shr eax, 1
cmp byte [0x6ba084], 0
mov dword [esp + 0x28], edx
mov dword [esp + 0x40], esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], eax
je 0x5787b6
cmp ecx, 0x7e0
jne 0x5786b5
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x18], 0
jle 0x578bce
mov ecx, dword [ebx + 8]
test ecx, ecx
mov edi, dword [esp + 0x28]
mov eax, esi
mov dword [esp + 0x10], 0
jle 0x57866a
jmp 0x5785f4
mov eax, dword [esp + 0x24]
movzx ecx, byte [eax]
mov edx, dword [esp + 0x34]
mov ecx, dword [edx + ecx*4]
add eax, 1
mov dword [esp + 0x24], eax
movzx eax, word [edi]
mov edx, eax
shl edx, 0x10
or edx, eax
mov eax, ecx
and eax, 0xfc00
shl eax, 0xb
mov ebx, ecx
shr ebx, 3
and ebx, 0x1f
add eax, ebx
mov ebx, ecx
shr ebx, 8
and ebx, 0xf800
add eax, ebx
mov ebx, dword [ebp + 0x14]
shr ecx, 0x1b
and edx, 0x7e0f81f
sub eax, edx
imul eax, ecx
shr eax, 5
add eax, edx
and eax, 0x7e0f81f
mov ecx, eax
shr ecx, 0x10
or ecx, eax
mov eax, dword [esp + 0x10]
mov word [edi], cx
mov ecx, dword [ebx + 8]
add eax, 1
add edi, 2
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x5785f0
mov edx, dword [esp + 0x54]
mov eax, dword [edx + 0x90]
cdq
sub eax, edx
mov edx, dword [esp + 0x28]
sar eax, 1
lea eax, [edx + eax*2]
mov edx, dword [ebp + 8]
add esi, dword [edx + 0x24]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
add eax, 1
cmp eax, dword [ebx + 0xc]
mov dword [esp + 0x18], eax
jl 0x5785d6
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc0]
call edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp ecx, 0x3e0
jne 0x5787b6
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x18], 0
jle 0x578bce
mov ecx, dword [ebx + 8]
test ecx, ecx
mov edi, dword [esp + 0x28]
mov eax, esi
mov dword [esp + 0x10], 0
jle 0x57876b
jmp 0x5786f4
mov eax, dword [esp + 0x24]
movzx ecx, byte [eax]
mov edx, dword [esp + 0x34]
mov ecx, dword [edx + ecx*4]
add eax, 1
mov dword [esp + 0x24], eax
movzx eax, word [edi]
mov edx, eax
shl edx, 0x10
or edx, eax
mov eax, ecx
shr eax, 3
and eax, 0x1f
mov ebx, ecx
shr ebx, 9
and ebx, 0x7c00
add eax, ebx
mov ebx, ecx
and ebx, 0xf800
shl ebx, 0xa
add eax, ebx
mov ebx, dword [ebp + 0x14]
shr ecx, 0x1b
and edx, 0x3e07c1f
sub eax, edx
imul eax, ecx
shr eax, 5
add eax, edx
and eax, 0x3e07c1f
mov ecx, eax
shr ecx, 0x10
or ecx, eax
mov eax, dword [esp + 0x10]
mov word [edi], cx
mov ecx, dword [ebx + 8]
add eax, 1
add edi, 2
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x5786f0
mov edx, dword [esp + 0x54]
mov eax, dword [edx + 0x90]
cdq
sub eax, edx
mov edx, dword [esp + 0x28]
sar eax, 1
lea eax, [edx + eax*2]
mov edx, dword [ebp + 8]
add esi, dword [edx + 0x24]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
add eax, 1
cmp eax, dword [ebx + 0xc]
mov dword [esp + 0x18], eax
jl 0x5786d6
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc0]
call edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x38], 0
jle 0x578bce
mov eax, ebx
mov ecx, dword [eax + 8]
lea ecx, [ecx]
test ecx, ecx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], 0
jle 0x5788bf
jmp 0x5787f4
mov esi, dword [esp + 0x24]
movzx ecx, byte [esi]
mov edx, dword [esp + 0x34]
mov edx, dword [edx + ecx*4]
movzx eax, word [eax]
add esi, 1
mov edi, dword [esp + 0x20]
mov dword [esp + 0x24], esi
mov ecx, edx
shr ecx, 0x18
mov esi, pe_nt_image_headers32
sub esi, ecx
mov dword [esp + 0x30], esi
movzx esi, dh
imul esi, ecx
imul esi, edi
mov ebx, eax
and ebx, edi
imul ebx, dword [esp + 0x30]
shr esi, 8
add esi, dword [esp + 0x2c]
mov dword [esp + 0x58], edx
add ebx, esi
mov esi, edx
mov edx, dword [esp + 0x10]
shr esi, 0x10
and esi, 0xff
imul esi, ecx
imul esi, edx
shr ebx, 8
and ebx, edi
mov edi, eax
and edi, edx
imul edi, dword [esp + 0x30]
shr esi, 8
add esi, dword [esp + 0x48]
add edi, esi
shr edi, 8
and edi, edx
movzx edx, byte [esp + 0x58]
imul edx, ecx
mov ecx, dword [esp + 0x5c]
imul edx, ecx
and eax, ecx
imul eax, dword [esp + 0x30]
shr edx, 8
add edx, dword [esp + 0x60]
add ebx, edi
add eax, edx
mov edx, dword [esp + 0x14]
shr eax, 8
and eax, ecx
mov ecx, dword [ebp + 0x14]
add ebx, eax
mov eax, dword [esp + 0x18]
mov word [eax], bx
mov ecx, dword [ecx + 8]
add edx, 1
add eax, 2
cmp edx, ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
jl 0x5787f0
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x54]
mov eax, dword [edx + 0x90]
cdq
sub eax, edx
mov edx, dword [esp + 0x28]
sar eax, 1
lea eax, [edx + eax*2]
mov edx, dword [ebp + 8]
add esi, dword [edx + 0x24]
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x38]
add eax, 1
cmp eax, dword [edx + 0xc]
mov dword [esp + 0x40], esi
mov dword [esp + 0x38], eax
jl 0x5787d0
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc0]
call edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp eax, 0x20
jne 0x578bce
mov ecx, edi
mov eax, dword [ecx + 0x90]
imul eax, dword [ebp + 0x10]
mov edi, dword [ecx + 0xdc]
cdq
and edx, 3
add eax, edx
mov edx, dword [ecx + 0xa4]
sar eax, 2
add eax, dword [ebp + 0xc]
mov dword [esp + 0x30], edi
lea eax, [edx + eax*4]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 8]
mov edx, ebx
mov ebx, dword [edx + 4]
imul ebx, dword [eax + 0x24]
mov eax, dword [ecx + 0xd8]
mov ecx, dword [ecx + 0xe0]
add ebx, dword [edx]
mov dword [esp + 0x10], eax
shr eax, 1
mov dword [esp + 0x48], eax
mov eax, edi
shr eax, 1
mov dword [esp + 0x2c], eax
mov eax, ecx
add ebx, esi
shr eax, 1
cmp byte [0x6ba084], 0
mov dword [esp + 0x40], ebx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], eax
je 0x578a8a
cmp dword [edx + 0xc], 0
mov dword [esp + 0x18], 0
jle 0x578bce
mov esi, edx
mov ecx, dword [esi + 8]
test ecx, ecx
mov edi, dword [esp + 0x14]
mov dword [esp + 0x10], 0
jle 0x578a37
jmp 0x5789c5
mov ebx, dword [esp + 0x24]
movzx ecx, byte [ebx]
mov edx, dword [esp + 0x34]
mov eax, dword [edx + ecx*4]
mov ecx, dword [edi]
add ebx, 1
mov dword [esp + 0x24], ebx
mov ebx, eax
mov edx, eax
and eax, 0xff00
and ebx, 0xff00ff
mov esi, ecx
and esi, 0xff00ff
sub ebx, esi
and ecx, 0xff00
sub eax, ecx
shr edx, 0x18
imul eax, edx
imul ebx, edx
shr eax, 8
shr ebx, 8
add eax, ecx
add ebx, esi
mov esi, dword [ebp + 0x14]
and eax, 0xff00
and ebx, 0xff00ff
or ebx, eax
mov eax, dword [esp + 0x10]
mov dword [edi], ebx
mov ecx, dword [esi + 8]
add eax, 1
add edi, 4
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x5789c1
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x90]
cdq
and edx, 3
add eax, edx
mov edx, dword [esp + 0x14]
sar eax, 2
lea eax, [edx + eax*4]
mov edx, dword [ebp + 8]
add ebx, dword [edx + 0x24]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
add eax, 1
cmp eax, dword [esi + 0xc]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x18], eax
jl 0x5789ab
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc0]
call edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp dword [edx + 0xc], 0
mov dword [esp + 0x38], 0
jle 0x578bce
mov eax, edx
mov ecx, dword [eax + 8]
test ecx, ecx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov esi, ebx
mov dword [esp + 0x28], 0
jle 0x578b8f
jmp 0x578ac4
mov esi, dword [esp + 0x24]
movzx ecx, byte [esi]
mov edx, dword [esp + 0x34]
mov edx, dword [edx + ecx*4]
mov eax, dword [eax]
add esi, 1
mov dword [esp + 0x24], esi
mov ecx, edx
shr ecx, 0x18
mov esi, pe_nt_image_headers32
sub esi, ecx
mov dword [esp + 0x20], esi
movzx esi, dh
imul esi, ecx
shr esi, 8
imul esi, edi
add esi, dword [esp + 0x2c]
mov ebx, eax
and ebx, edi
imul ebx, dword [esp + 0x20]
add ebx, esi
mov esi, edx
shr esi, 0x10
and esi, 0xff
imul esi, ecx
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x10]
mov edi, eax
and edi, edx
imul edi, dword [esp + 0x20]
shr esi, 8
imul esi, edx
add esi, dword [esp + 0x48]
shr ebx, 8
add edi, esi
shr edi, 8
and edi, edx
movzx edx, byte [esp + 0x58]
imul edx, ecx
mov ecx, dword [esp + 0x5c]
and ebx, dword [esp + 0x30]
and eax, ecx
imul eax, dword [esp + 0x20]
shr edx, 8
imul edx, ecx
add edx, dword [esp + 0x60]
add ebx, edi
mov edi, dword [esp + 0x30]
add eax, edx
mov edx, dword [esp + 0x28]
shr eax, 8
and eax, ecx
mov ecx, dword [ebp + 0x14]
add ebx, eax
mov eax, dword [esp + 0x18]
mov dword [eax], ebx
mov ecx, dword [ecx + 8]
add edx, 1
add eax, 4
cmp edx, ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], edx
jl 0x578ac0
mov ebx, dword [esp + 0x40]
mov edx, dword [esp + 0x54]
mov eax, dword [edx + 0x90]
cdq
and edx, 3
add eax, edx
mov edx, dword [esp + 0x14]
sar eax, 2
lea eax, [edx + eax*4]
mov edx, dword [ebp + 8]
add ebx, dword [edx + 0x24]
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x38]
add eax, 1
cmp eax, dword [edx + 0xc]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x38], eax
jl 0x578aa1
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc0]
call edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp byte [esi + 0x52], 0
jne 0x5792c3
mov ecx, dword [ebp + 0x18]
mov eax, 0x7329bc
call fcn.0056a480
test al, al
jne 0x5792c3
mov eax, dword [esp + 0x14]
test eax, eax
je 0x578cdb
cmp dword [eax + 0x70], 0
je 0x578cdb
cmp byte [edi + 0x76], 0
jne 0x578c2a
cmp byte [eax + 0x76], 0
jne 0x578cdb
cmp dword [edi + 0x7c], 0
jle 0x578c40
mov eax, dword [edi + 0x70]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x80]
push 0
push eax
call edx
push 0x64
lea eax, [esp + 0x8c]
push 0
push eax
call fcn.0062e530
mov ecx, dword [esp + 0x20]
add esp, 0xc
cmp byte [ecx + 0x51], 0
mov dword [esp + 0x88], 0x64
mov ebx, 0x1000000
je 0x578c73
mov ebx, 0x1008000
mov eax, edi
call fcn.005726f0
lea edx, [esp + 0x88]
push edx
mov esi, eax
mov eax, dword [esi]
push ebx
lea ecx, [esp + 0x80]
push ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x20]
push ecx
call fcn.005726f0
add esp, 4
push eax
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x14]
lea edx, [esp + 0x78]
push edx
push esi
call eax
cmp dword [edi + 0x7c], 0
jle 0x57b7f0
mov eax, dword [edi + 0x70]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x64]
push 0
push 1
add edi, 0x80
push edi
push 0
push eax
call edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp byte [edi + 0x75], 0
jne 0x57b7f0
mov eax, edi
call fcn.005726f0
mov eax, dword [edi]
mov edx, dword [eax + 0xbc]
mov ecx, edi
call edx
test al, al
je 0x57b7f0
mov ecx, dword [edi + 0x6c]
mov eax, dword [esi]
mov edx, dword [eax + 0x44]
push ecx
mov ecx, esi
call edx
cmp dword [esi + 0x48], 0
mov dword [esp + 0x40], eax
jne 0x578fdc
mov ecx, dword [ebp + 8]
mov eax, dword [ebx + 4]
imul eax, dword [ecx + 0x24]
add eax, dword [ebx]
mov edx, dword [esp + 0x40]
lea ecx, [edx + eax*4]
mov eax, dword [edi + 0xd4]
cmp eax, 0x10
jne 0x578e7e
mov eax, dword [edi + 0x90]
imul eax, dword [ebp + 0x10]
cdq
sub eax, edx
mov edx, dword [edi + 0xa4]
sar eax, 1
add eax, dword [ebp + 0xc]
cmp byte [esi + 0x51], 0
lea eax, [edx + eax*2]
mov dword [esp + 0x14], eax
je 0x578dfc
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x18], 0
jle 0x578fc7
mov esi, eax
lea ebx, [ebx]
cmp dword [ebx + 8], 0
mov edx, esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], 0
jle 0x578dbc
mov esi, ecx
mov eax, dword [esi]
add esi, 4
test eax, 0xff000000
je 0x578da5
mov word [edx], ax
mov eax, dword [esp + 0x10]
add eax, 1
add edx, 2
cmp eax, dword [ebx + 8]
mov dword [esp + 0x10], eax
jl 0x578d96
mov esi, dword [esp + 0x14]
mov eax, dword [edi + 0x90]
cdq
sub eax, edx
mov edx, dword [ebp + 8]
sar eax, 1
lea esi, [esi + eax*2]
mov eax, dword [edx + 0x24]
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0x18]
add eax, 1
cmp eax, dword [ebx + 0xc]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], eax
jl 0x578d80
mov edx, dword [edi]
mov eax, dword [edx + 0xc0]
mov ecx, edi
call eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x10], 0
jle 0x578fc7
mov edi, edi
cmp dword [ebx + 8], 0
mov edx, ecx
mov dword [esp + 0x20], 0
jle 0x578e3a
mov si, word [edx]
add dword [esp + 0x20], 1
mov word [eax], si
mov esi, dword [ebx + 8]
add eax, 2
add edx, 4
cmp dword [esp + 0x20], esi
jl 0x578e20
mov eax, dword [edi + 0x90]
cdq
sub eax, edx
mov edx, dword [esp + 0x14]
sar eax, 1
lea eax, [edx + eax*2]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x24]
lea ecx, [ecx + edx*4]
mov edx, dword [esp + 0x10]
add edx, 1
cmp edx, dword [ebx + 0xc]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
jl 0x578e10
mov edx, dword [edi]
mov eax, dword [edx + 0xc0]
mov ecx, edi
call eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp eax, 0x20
jne 0x578fc7
mov eax, dword [edi + 0x90]
imul eax, dword [ebp + 0x10]
cdq
and edx, 3
add eax, edx
mov edx, dword [edi + 0xa4]
sar eax, 2
add eax, dword [ebp + 0xc]
cmp byte [esi + 0x51], 0
lea eax, [edx + eax*4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0
je 0x578f4f
cmp dword [ebx + 0xc], 0
jle 0x578fc7
mov esi, eax
jmp 0x578ed0
cmp dword [ebx + 8], 0
mov edx, esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], 0
jle 0x578f0b
mov esi, ecx
mov eax, dword [esi]
add esi, 4
test eax, 0xff000000
je 0x578ef4
mov dword [edx], eax
mov eax, dword [esp + 0x10]
add eax, 1
add edx, 4
cmp eax, dword [ebx + 8]
mov dword [esp + 0x10], eax
jl 0x578ee6
mov esi, dword [esp + 0x14]
mov eax, dword [edi + 0x90]
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp + 8]
sar eax, 2
lea esi, [esi + eax*4]
mov eax, dword [edx + 0x24]
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0x18]
add eax, 1
cmp eax, dword [ebx + 0xc]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], eax
jl 0x578ed0
mov edx, dword [edi]
mov eax, dword [edx + 0xc0]
mov ecx, edi
call eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp dword [ebx + 0xc], 0
jle 0x578fc7
mov esi, dword [ebx + 8]
test esi, esi
mov eax, ecx
mov dword [esp + 0x10], 0
jle 0x578f94
mov edx, dword [esp + 0x14]
sub edx, ecx
mov dword [esp + 0x24], edx
jmp 0x578f7a
mov edx, dword [esp + 0x24]
mov esi, dword [eax]
mov dword [edx + eax], esi
mov edx, dword [esp + 0x10]
mov esi, dword [ebx + 8]
add edx, 1
add eax, 4
cmp edx, esi
mov dword [esp + 0x10], edx
jl 0x578f76
mov eax, dword [edi + 0x90]
cdq
and edx, 3
add eax, edx
mov edx, dword [esp + 0x14]
sar eax, 2
lea eax, [edx + eax*4]
mov edx, dword [ebp + 8]
mov dword [esp + 0x14], eax
mov eax, dword [edx + 0x24]
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0x18]
add eax, 1
cmp eax, dword [ebx + 0xc]
mov dword [esp + 0x18], eax
jl 0x578f5c
mov edx, dword [edi]
mov eax, dword [edx + 0xc0]
mov ecx, edi
call eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov ecx, dword [ebx + 4]
mov edx, dword [ebp + 8]
imul ecx, dword [edx + 0x24]
add ecx, dword [esi + 0x4c]
mov eax, dword [edi + 0xd4]
add ecx, dword [ebx]
cmp eax, 0x10
jne 0x579158
mov eax, dword [edi + 0x90]
imul eax, dword [ebp + 0x10]
cdq
sub eax, edx
mov edx, dword [edi + 0xa4]
sar eax, 1
add eax, dword [ebp + 0xc]
cmp byte [esi + 0x51], 0
lea eax, [edx + eax*2]
mov dword [esp + 0x34], eax
mov dword [esp + 0x18], 0
je 0x5790ca
cmp dword [ebx + 0xc], 0
jle 0x5792ae
mov esi, eax
cmp dword [ebx + 8], 0
mov dword [esp + 0x14], esi
mov edx, ecx
mov dword [esp + 0x10], 0
jle 0x57908d
jmp 0x579050
movzx eax, byte [edx]
mov esi, dword [esp + 0x40]
mov eax, dword [esi + eax*4]
add edx, 1
test eax, 0xff000000
je 0x579074
mov esi, dword [esp + 0x14]
mov word [esi], ax
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x579079
add dword [esp + 0x14], 2
mov eax, dword [esp + 0x10]
add eax, 1
cmp eax, dword [ebx + 8]
mov dword [esp + 0x10], eax
jl 0x579050
mov esi, dword [esp + 0x34]
mov eax, dword [edi + 0x90]
cdq
sub eax, edx
mov edx, dword [ebp + 8]
add ecx, dword [edx + 0x24]
sar eax, 1
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x18]
add eax, 1
cmp eax, dword [ebx + 0xc]
mov dword [esp + 0x34], esi
mov dword [esp + 0x18], eax
jl 0x579037
mov eax, dword [edi]
mov edx, dword [eax + 0xc0]
mov ecx, edi
call edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp dword [ebx + 0xc], 0
jle 0x5792ae
mov esi, dword [ebx + 8]
test esi, esi
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
jle 0x579117
mov edx, dword [esp + 0x14]
movzx edx, byte [edx]
mov esi, dword [esp + 0x40]
mov dx, word [esi + edx*4]
add dword [esp + 0x14], 1
mov word [eax], dx
mov edx, dword [esp + 0x10]
mov esi, dword [ebx + 8]
add edx, 1
add eax, 2
cmp edx, esi
mov dword [esp + 0x10], edx
jl 0x5790eb
mov eax, dword [edi + 0x90]
cdq
sub eax, edx
mov edx, dword [esp + 0x34]
sar eax, 1
lea eax, [edx + eax*2]
mov edx, dword [ebp + 8]
add ecx, dword [edx + 0x24]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x18]
add eax, 1
cmp eax, dword [ebx + 0xc]
mov dword [esp + 0x18], eax
jl 0x5790d7
mov eax, dword [edi]
mov edx, dword [eax + 0xc0]
mov ecx, edi
call edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp eax, 0x20
jne 0x5792ae
mov eax, dword [edi + 0x90]
imul eax, dword [ebp + 0x10]
cdq
and edx, 3
add eax, edx
mov edx, dword [edi + 0xa4]
sar eax, 2
add eax, dword [ebp + 0xc]
cmp byte [esi + 0x51], 0
lea eax, [edx + eax*4]
mov dword [esp + 0x34], eax
mov dword [esp + 0x18], 0
je 0x579233
cmp dword [ebx + 0xc], 0
jle 0x5792ae
mov esi, eax
cmp dword [ebx + 8], 0
mov dword [esp + 0x14], esi
mov edx, ecx
mov dword [esp + 0x10], 0
jle 0x5791f2
movzx eax, byte [edx]
mov esi, dword [esp + 0x40]
mov eax, dword [esi + eax*4]
add edx, 1
test eax, 0xff000000
je 0x5791d9
mov esi, dword [esp + 0x14]
mov dword [esi], eax
add esi, 4
mov dword [esp + 0x14], esi
jmp 0x5791de
add dword [esp + 0x14], 4
mov eax, dword [esp + 0x10]
add eax, 1
cmp eax, dword [ebx + 8]
mov dword [esp + 0x10], eax
jl 0x5791b6
mov esi, dword [esp + 0x34]
mov eax, dword [edi + 0x90]
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp + 8]
add ecx, dword [edx + 0x24]
sar eax, 2
lea esi, [esi + eax*4]
mov eax, dword [esp + 0x18]
add eax, 1
cmp eax, dword [ebx + 0xc]
mov dword [esp + 0x34], esi
mov dword [esp + 0x18], eax
jl 0x5791a2
mov eax, dword [edi]
mov edx, dword [eax + 0xc0]
mov ecx, edi
call edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp dword [ebx + 0xc], 0
jle 0x5792ae
mov esi, dword [ebx + 8]
test esi, esi
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
jle 0x57927e
mov edx, dword [esp + 0x14]
movzx edx, byte [edx]
mov esi, dword [esp + 0x40]
mov edx, dword [esi + edx*4]
add dword [esp + 0x14], 1
mov dword [eax], edx
mov edx, dword [esp + 0x10]
mov esi, dword [ebx + 8]
add edx, 1
add eax, 4
cmp edx, esi
mov dword [esp + 0x10], edx
jl 0x579254
mov eax, dword [edi + 0x90]
cdq
and edx, 3
add eax, edx
mov edx, dword [esp + 0x34]
sar eax, 2
lea eax, [edx + eax*4]
mov edx, dword [ebp + 8]
add ecx, dword [edx + 0x24]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x18]
add eax, 1
cmp eax, dword [ebx + 0xc]
mov dword [esp + 0x18], eax
jl 0x579240
mov eax, dword [edi]
mov edx, dword [eax + 0xc0]
mov ecx, edi
call edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp byte [edi + 0x75], 0
jne 0x57b7f0
mov eax, edi
call fcn.005726f0
mov eax, dword [edi]
mov edx, dword [eax + 0xbc]
mov ecx, edi
call edx
test al, al
je 0x57b7f0
mov edx, dword [edi + 0x6c]
mov ecx, esi
mov eax, dword [ecx]
mov eax, dword [eax + 0x44]
push edx
call eax
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx]
mov esi, eax
mov eax, dword [edx + 0x48]
mov dword [esp + 0x5c], esi
call eax
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 0x48], 0
mov dword [esp + 0x30], eax
jne 0x57a536
mov eax, dword [ebp + 8]
mov edx, dword [ebx + 4]
imul edx, dword [eax + 0x24]
mov ecx, dword [ebx]
mov eax, dword [edi + 0xd4]
add ecx, edx
cmp eax, 0x10
lea edx, [esi + ecx*4]
mov dword [esp + 0x3c], edx
jne 0x579ece
mov eax, dword [edi + 0x90]
imul eax, dword [ebp + 0x10]
mov esi, dword [edi + 0xd8]
cdq
sub eax, edx
mov edx, dword [edi + 0xa4]
sar eax, 1
add eax, dword [ebp + 0xc]
mov dword [esp + 0x2c], esi
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x4c], eax
mov eax, dword [edi + 0xdc]
mov edi, dword [edi + 0xe0]
add ecx, edx
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x5c], edi
call fcn.0056a440
test al, al
je 0x5798c2
mov eax, dword [esp + 0x28]
cmp eax, 0x7e0
jne 0x57953a
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x18], 0
jle 0x57b7e2
mov eax, dword [ebp + 0x14]
mov edx, dword [esp + 0x44]
mov eax, dword [eax + 8]
test eax, eax
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
jle 0x5794ef
jmp 0x5793e4
mov eax, dword [esp + 0x14]
mov esi, dword [edx]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x20]
mov bl, byte [esi]
movzx esi, bl
cmp esi, eax
jle 0x5793fb
mov bl, byte [esp + 0x14]
mov eax, dword [esp + 0x10]
shr eax, 0x18
mov esi, pe_nt_image_headers32
sub esi, eax
cmp esi, 1
jne 0x579436
movzx esi, bl
test esi, esi
jle 0x5794d9
mov eax, esi
jmp 0x579420
mov di, word [edx]
mov word [ecx], di
add ecx, 2
add edx, 4
sub eax, 1
jne 0x579420
jmp 0x5794d9
cmp esi, 0x100
jne 0x57944c
movzx esi, bl
lea ecx, [ecx + esi*2]
lea edx, [edx + esi*4]
jmp 0x5794d9
movzx edi, word [ecx]
mov eax, edi
shl eax, 0x10
or eax, edi
sar esi, 3
and eax, 0x7e0f81f
imul eax, esi
sar eax, 5
and eax, 0x7e0f81f
mov esi, eax
shr esi, 0x10
or esi, eax
add esi, dword [esp + 0x10]
add edx, 4
mov word [ecx], si
movzx esi, bl
add ecx, 2
cmp esi, 1
mov dword [esp + 0x24], esi
jle 0x5794d9
add esi, 0xffffffff
mov dword [esp + 0x10], esi
mov esi, dword [edx]
movzx edi, word [ecx]
mov ebx, esi
shr ebx, 0x18
mov eax, pe_nt_image_headers32
sub eax, ebx
mov ebx, edi
shl ebx, 0x10
or ebx, edi
shr eax, 3
and ebx, 0x7e0f81f
imul eax, ebx
sar eax, 5
and eax, 0x7e0f81f
mov edi, eax
shr edi, 0x10
or edi, eax
add edi, esi
mov word [ecx], di
add edx, 4
add ecx, 2
sub dword [esp + 0x10], 1
jne 0x579490
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
add dword [esp + 0x20], esi
sub eax, esi
test eax, eax
mov dword [esp + 0x14], eax
jg 0x5793e0
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + 0x90]
mov ecx, dword [ebp + 8]
cdq
sub eax, edx
mov edx, dword [esp + 0x4c]
sar eax, 1
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x4c], eax
mov eax, dword [ecx + 0x24]
add dword [esp + 0x44], eax
lea ecx, [edx + eax*4]
mov eax, dword [esp + 0x18]
mov edx, dword [ebp + 0x14]
add eax, 1
cmp eax, dword [edx + 0xc]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x18], eax
jl 0x5793b4
jmp 0x57b7e2
cmp eax, 0x3e0
jne 0x5796da
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x18], 0
jle 0x57b7e2
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
test eax, eax
mov dword [esp + 0x14], eax
jle 0x57968f
jmp 0x579584
mov eax, dword [esp + 0x14]
mov esi, dword [edx]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x20]
mov bl, byte [esi]
movzx esi, bl
cmp esi, eax
jle 0x57959b
mov bl, byte [esp + 0x14]
mov eax, dword [esp + 0x10]
shr eax, 0x18
mov esi, pe_nt_image_headers32
sub esi, eax
cmp esi, 1
jne 0x5795d6
movzx esi, bl
test esi, esi
jle 0x579679
mov eax, esi
jmp 0x5795c0
mov di, word [edx]
mov word [ecx], di
add ecx, 2
add edx, 4
sub eax, 1
jne 0x5795c0
jmp 0x579679
cmp esi, 0x100
jne 0x5795ec
movzx esi, bl
lea ecx, [ecx + esi*2]
lea edx, [edx + esi*4]
jmp 0x579679
movzx edi, word [ecx]
mov eax, edi
shl eax, 0x10
or eax, edi
sar esi, 3
and eax, 0x3e07c1f
imul eax, esi
sar eax, 5
and eax, 0x3e07c1f
mov esi, eax
shr esi, 0x10
or esi, eax
add esi, dword [esp + 0x10]
add edx, 4
mov word [ecx], si
movzx esi, bl
add ecx, 2
cmp esi, 1
mov dword [esp + 0x24], esi
jle 0x579679
add esi, 0xffffffff
mov dword [esp + 0x10], esi
mov esi, dword [edx]
movzx edi, word [ecx]
mov ebx, esi
shr ebx, 0x18
mov eax, pe_nt_image_headers32
sub eax, ebx
mov ebx, edi
shl ebx, 0x10
or ebx, edi
shr eax, 3
and ebx, 0x3e07c1f
imul eax, ebx
sar eax, 5
and eax, 0x3e07c1f
mov edi, eax
shr edi, 0x10
or edi, eax
add edi, esi
mov word [ecx], di
add edx, 4
add ecx, 2
sub dword [esp + 0x10], 1
jne 0x579630
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
add dword [esp + 0x20], esi
sub eax, esi
test eax, eax
mov dword [esp + 0x14], eax
jg 0x579580
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + 0x90]
mov ecx, dword [ebp + 8]
cdq
sub eax, edx
mov edx, dword [esp + 0x4c]
sar eax, 1
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x4c], eax
mov eax, dword [ecx + 0x24]
add dword [esp + 0x44], eax
lea ecx, [edx + eax*4]
mov eax, dword [esp + 0x18]
mov edx, dword [ebp + 0x14]
add eax, 1
cmp eax, dword [edx + 0xc]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x18], eax
jl 0x579557
jmp 0x57b7e2
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x34], 0
jle 0x57b7e2
mov ecx, dword [esp + 0x4c]
mov edx, dword [ebp + 0x14]
mov eax, dword [esp + 0x44]
mov ebx, dword [edx + 8]
test ebx, ebx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x30], ebx
jle 0x57987b
mov edx, dword [eax]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x20]
mov dl, byte [edx]
mov byte [esp + 0x1f], dl
movzx edx, dl
cmp edx, ebx
jle 0x57972d
mov byte [esp + 0x1f], bl
mov ebx, dword [esp + 0x10]
shr ebx, 0x18
mov edx, pe_nt_image_headers32
sub edx, ebx
cmp edx, 1
mov dword [esp + 0x18], edx
jne 0x579771
movzx edx, byte [esp + 0x1f]
test edx, edx
jle 0x579861
mov dword [esp + 0x10], edx
mov bx, word [eax]
mov word [ecx], bx
add ecx, 2
add eax, 4
sub dword [esp + 0x10], 1
jne 0x579755
mov dword [esp + 0x14], ecx
jmp 0x579861
cmp edx, 0x100
jne 0x57978d
movzx edx, byte [esp + 0x1f]
lea ecx, [ecx + edx*2]
mov dword [esp + 0x14], ecx
lea eax, [eax + edx*4]
jmp 0x579861
add eax, 4
mov dword [esp + 0x38], eax
movzx eax, word [ecx]
mov ecx, eax
and ecx, edi
imul ecx, edx
mov edx, eax
and edx, dword [esp + 0x28]
and eax, esi
imul edx, dword [esp + 0x18]
imul eax, dword [esp + 0x18]
shr edx, 8
and edx, dword [esp + 0x28]
shr ecx, 8
add edx, dword [esp + 0x10]
and ecx, edi
shr eax, 8
add edx, ecx
mov ecx, dword [esp + 0x14]
and eax, esi
add eax, edx
movzx edx, byte [esp + 0x1f]
mov word [ecx], ax
add ecx, 2
cmp edx, 1
mov dword [esp + 0x14], ecx
mov dword [esp + 0x2c], edx
jle 0x57985d
add edx, 0xffffffff
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x38]
mov eax, dword [edx]
add edx, 4
mov dword [esp + 0x38], edx
mov dword [esp + 0x24], eax
shr eax, 0x18
mov edx, pe_nt_image_headers32
sub edx, eax
movzx eax, word [ecx]
mov ecx, eax
mov dword [esp + 0x10], edx
and ecx, edi
imul ecx, edx
mov edx, eax
and edx, dword [esp + 0x28]
and eax, esi
imul edx, dword [esp + 0x10]
imul eax, dword [esp + 0x10]
shr edx, 8
and edx, dword [esp + 0x28]
shr ecx, 8
add edx, dword [esp + 0x24]
and ecx, edi
shr eax, 8
add edx, ecx
mov ecx, dword [esp + 0x14]
and eax, esi
add eax, edx
mov word [ecx], ax
add ecx, 2
sub dword [esp + 0x18], 1
mov dword [esp + 0x14], ecx
jne 0x5797f0
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x30]
add dword [esp + 0x20], edx
sub ebx, edx
test ebx, ebx
mov dword [esp + 0x30], ebx
jg 0x579712
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x90]
cdq
sub eax, edx
mov edx, dword [ebp + 8]
sar eax, 1
lea ecx, [ecx + eax*2]
mov eax, dword [edx + 0x24]
mov edx, dword [esp + 0x3c]
add dword [esp + 0x44], eax
lea edx, [edx + eax*4]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x3c], edx
mov edx, dword [ebp + 0x14]
add eax, 1
cmp eax, dword [edx + 0xc]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x34], eax
jl 0x5796f0
jmp 0x57b7e2
mov ecx, dword [ebp + 0x18]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx]
imul ecx, eax
mov dword [esp + 0x40], eax
mov eax, 0x80808081
imul ecx
mov eax, dword [ebp + 0x18]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [eax + 4]
imul edx, dword [esp + 0x40]
mov dword [esp + 0x24], edx
mov eax, 0x80808081
imul edx
add edx, dword [esp + 0x24]
mov dword [esp + 0x34], ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp + 0x18]
mov edx, dword [edx + 8]
imul edx, dword [esp + 0x40]
mov dword [esp + 0x30], eax
mov dword [esp + 0x24], edx
mov eax, 0x80808081
imul edx
add edx, dword [esp + 0x24]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, dword [esp + 0x30]
mov dword [esp + 0x60], eax
jne 0x579cb9
cmp dword [esp + 0x30], eax
jne 0x579cb9
mov eax, dword [esp + 0x28]
cmp eax, 0x7e0
jne 0x579b08
sar ecx, 3
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x34], ecx
mov dword [esp + 0x18], 0
jle 0x57b7e2
mov ecx, dword [ebp + 0x14]
mov ebx, dword [ecx + 8]
test ebx, ebx
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], ebx
jle 0x579abd
mov edx, dword [esp + 0x20]
mov al, byte [edx]
mov ecx, dword [edi]
movzx edx, al
cmp edx, ebx
jle 0x5799a7
mov al, bl
shr ecx, 0x18
cmp ecx, 0xff
jne 0x579a0b
cmp dword [esp + 0x40], ecx
jne 0x579a1d
movzx edx, al
test edx, edx
jle 0x579aab
mov ebx, edx
lea esp, [esp]
mov ecx, dword [edi]
mov eax, ecx
shl eax, 0x10
and ecx, 0xf81f
or eax, ecx
and eax, 0x7e0f81f
imul eax, dword [esp + 0x34]
shr eax, 5
and eax, 0x7e0f81f
mov ecx, eax
shr ecx, 0x10
or ecx, eax
mov word [esi], cx
add edi, 4
add esi, 2
sub ebx, 1
jne 0x5799d0
jmp 0x579aa7
test ecx, ecx
jne 0x579a1d
movzx edx, al
lea esi, [esi + edx*2]
lea edi, [edi + edx*4]
jmp 0x579aab
movzx edx, al
test edx, edx
mov dword [esp + 0x24], edx
jle 0x579aab
mov dword [esp + 0x10], edx
mov ecx, dword [edi]
mov edx, ecx
shr edx, 0x18
imul edx, dword [esp + 0x40]
movzx ebx, word [esi]
mov eax, 0x80808081
mul edx
shr edx, 7
mov eax, edx
and ecx, 0xffff
mov edx, pe_nt_image_headers32
sub edx, eax
mov eax, ecx
shl eax, 0x10
and ecx, 0xf81f
or eax, ecx
mov ecx, ebx
shl ecx, 0x10
sar edx, 3
and eax, 0x7e0f81f
imul eax, dword [esp + 0x34]
or ecx, ebx
and ecx, 0x7e0f81f
imul ecx, edx
add eax, ecx
shr eax, 5
and eax, 0x7e0f81f
mov edx, eax
shr edx, 0x10
or edx, eax
mov word [esi], dx
add edi, 4
add esi, 2
sub dword [esp + 0x10], 1
jne 0x579a30
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x30]
add dword [esp + 0x20], edx
sub ebx, edx
test ebx, ebx
mov dword [esp + 0x30], ebx
jg 0x579996
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x90]
mov ecx, dword [esp + 0x4c]
cdq
sub eax, edx
sar eax, 1
lea edx, [ecx + eax*2]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x24]
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x44], eax
mov dword [esp + 0x4c], edx
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 0x14]
add eax, 1
cmp eax, dword [ecx + 0xc]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x18], eax
jl 0x579974
jmp 0x57b7e2
cmp eax, 0x3e0
jne 0x579cb9
sar ecx, 3
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x34], ecx
mov dword [esp + 0x18], 0
jle 0x57b7e2
lea esp, [esp]
mov eax, dword [ebp + 0x14]
mov ebx, dword [eax + 8]
test ebx, ebx
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x20], edx
mov dword [esp + 0x30], ebx
jle 0x579c6e
mov edx, dword [esp + 0x20]
mov al, byte [edx]
mov ecx, dword [edi]
movzx edx, al
cmp edx, ebx
jle 0x579b63
mov al, bl
shr ecx, 0x18
cmp ecx, 0xff
jne 0x579bbc
cmp dword [esp + 0x40], ecx
jne 0x579bce
movzx edx, al
test edx, edx
jle 0x579c5c
mov ebx, edx
mov ecx, dword [edi]
mov eax, ecx
shl eax, 0x10
and ecx, 0x7c1f
or eax, ecx
and eax, 0x3e07c1f
imul eax, dword [esp + 0x34]
shr eax, 5
and eax, 0x3e07c1f
mov ecx, eax
shr ecx, 0x10
or ecx, eax
mov word [esi], cx
add edi, 4
add esi, 2
sub ebx, 1
jne 0x579b81
jmp 0x579c58
test ecx, ecx
jne 0x579bce
movzx edx, al
lea esi, [esi + edx*2]
lea edi, [edi + edx*4]
jmp 0x579c5c
movzx edx, al
test edx, edx
mov dword [esp + 0x24], edx
jle 0x579c5c
mov dword [esp + 0x10], edx
mov ecx, dword [edi]
mov edx, ecx
shr edx, 0x18
imul edx, dword [esp + 0x40]
movzx ebx, word [esi]
mov eax, 0x80808081
mul edx
shr edx, 7
mov eax, edx
and ecx, 0xffff
mov edx, pe_nt_image_headers32
sub edx, eax
mov eax, ecx
shl eax, 0x10
and ecx, 0x7c1f
or eax, ecx
mov ecx, ebx
shl ecx, 0x10
sar edx, 3
and eax, 0x3e07c1f
imul eax, dword [esp + 0x34]
or ecx, ebx
and ecx, 0x3e07c1f
imul ecx, edx
add eax, ecx
shr eax, 5
and eax, 0x3e07c1f
mov edx, eax
shr edx, 0x10
or edx, eax
mov word [esi], dx
add edi, 4
add esi, 2
sub dword [esp + 0x10], 1
jne 0x579be1
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x30]
add dword [esp + 0x20], edx
sub ebx, edx
test ebx, ebx
mov dword [esp + 0x30], ebx
jg 0x579b52
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x90]
mov ecx, dword [esp + 0x4c]
cdq
sub eax, edx
sar eax, 1
lea edx, [ecx + eax*2]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x24]
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x44], eax
mov dword [esp + 0x4c], edx
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 0x14]
add eax, 1
cmp eax, dword [ecx + 0xc]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x18], eax
jl 0x579b30
jmp 0x57b7e2
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x48], 0
jle 0x57b7e2
jmp 0x579cd0
mov eax, dword [ebp + 0x14]
mov edx, dword [esp + 0x44]
mov ecx, dword [eax + 8]
test ecx, ecx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x58], ecx
jle 0x579e83
mov eax, dword [edx]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
mov al, byte [eax]
mov byte [esp + 0x1f], al
movzx eax, al
cmp eax, ecx
jg 0x579d11
mov cl, byte [esp + 0x1f]
mov eax, dword [esp + 0x24]
shr eax, 0x18
cmp eax, 0xff
jne 0x579d9b
cmp dword [esp + 0x40], eax
jne 0x579db1
movzx eax, cl
test eax, eax
mov dword [esp + 0x20], eax
jle 0x579e6d
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x10], eax
mov eax, dword [edx]
add edx, 4
mov dword [esp + 0x38], edx
mov edx, eax
and edx, edi
imul edx, dword [esp + 0x60]
mov ebx, eax
and ebx, ecx
imul ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
and eax, esi
imul eax, dword [esp + 0x34]
shr edx, 8
shr ebx, 8
and edx, edi
and ebx, ecx
add edx, ebx
mov ebx, dword [esp + 0x14]
shr eax, 8
and eax, esi
add edx, eax
mov word [ebx], dx
mov edx, dword [esp + 0x38]
add ebx, 2
sub dword [esp + 0x10], 1
mov dword [esp + 0x14], ebx
jne 0x579d44
jmp 0x579e69
test eax, eax
jne 0x579db1
movzx eax, cl
lea ebx, [ebx + eax*2]
mov dword [esp + 0x14], ebx
lea edx, [edx + eax*4]
jmp 0x579e6d
movzx eax, cl
test eax, eax
mov dword [esp + 0x20], eax
jle 0x579e6d
mov dword [esp + 0x10], eax
mov ecx, dword [edx]
add edx, 4
mov dword [esp + 0x38], edx
mov edx, ecx
shr edx, 0x18
imul edx, dword [esp + 0x40]
mov eax, 0x80808081
mul edx
shr edx, 7
mov eax, edx
mov edx, pe_nt_image_headers32
sub edx, eax
movzx eax, word [ebx]
mov esi, eax
and esi, edi
imul esi, edx
mov ebx, ecx
and ebx, edi
imul ebx, dword [esp + 0x60]
add esi, ebx
shr esi, 8
and esi, edi
mov edi, eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x28]
and edi, esi
imul edi, edx
mov edx, ecx
and edx, esi
imul edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x14]
add edi, edx
mov edx, dword [esp + 0x24]
shr edi, 8
and edi, esi
mov esi, dword [esp + 0x2c]
and eax, esi
imul eax, dword [esp + 0x50]
and ecx, esi
imul ecx, dword [esp + 0x34]
add eax, ecx
add edx, edi
mov edi, dword [esp + 0x5c]
shr eax, 8
and eax, esi
add edx, eax
mov word [ebx], dx
mov edx, dword [esp + 0x38]
add ebx, 2
sub dword [esp + 0x10], 1
mov dword [esp + 0x14], ebx
jne 0x579dc4
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x58]
add dword [esp + 0x18], eax
sub ecx, eax
test ecx, ecx
mov dword [esp + 0x58], ecx
jg 0x579cf6
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x90]
mov ecx, dword [esp + 0x4c]
cdq
sub eax, edx
sar eax, 1
lea edx, [ecx + eax*2]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x24]
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x44], eax
mov dword [esp + 0x4c], edx
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x48]
mov ecx, dword [ebp + 0x14]
add eax, 1
cmp eax, dword [ecx + 0xc]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x48], eax
jl 0x579cd0
jmp 0x57b7e2
cmp eax, 0x20
jne 0x57b7e2
mov esi, edi
mov eax, dword [esi + 0x90]
imul eax, dword [ebp + 0x10]
mov ebx, dword [esi + 0xe0]
cdq
and edx, 3
add eax, edx
mov edx, dword [esi + 0xa4]
sar eax, 2
add eax, dword [ebp + 0xc]
mov dword [esp + 0x34], ebx
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x30]
add ecx, edx
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0xd8]
mov dword [esp + 0x44], ecx
mov ecx, dword [esi + 0xdc]
mov esi, dword [ebp + 0x18]
mov dword [esp + 0x60], eax
mov eax, esi
mov dword [esp + 0x30], ecx
call fcn.0056a440
test al, al
je 0x57a0d1
mov edx, dword [ebp + 0x14]
cmp dword [edx + 0xc], 0
mov dword [esp + 0x58], 0
jle 0x57b7e2
mov eax, dword [esp + 0x44]
mov edx, dword [ebp + 0x14]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
mov eax, dword [edx + 8]
test eax, eax
mov dword [esp + 0x20], eax
jle 0x57a082
jmp 0x579f74
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov bl, byte [edi]
mov edx, dword [esi]
movzx edi, bl
cmp edi, eax
mov dword [esp + 0x50], edx
jle 0x579f89
mov bl, al
mov eax, edx
shr eax, 0x18
mov edx, pe_nt_image_headers32
sub edx, eax
cmp edx, 1
jne 0x579fbb
movzx eax, bl
test eax, eax
jle 0x57a06c
mov edx, eax
mov edi, dword [esi]
mov dword [ecx], edi
add ecx, 4
add esi, 4
sub edx, 1
jne 0x579fa7
jmp 0x57a06c
cmp edx, 0x100
jne 0x579fd6
movzx eax, bl
lea edx, [eax*4]
add ecx, edx
add esi, edx
jmp 0x57a06c
mov eax, dword [ecx]
mov edi, eax
and edi, 0xff00ff
and eax, 0xff00
imul edi, edx
imul eax, edx
shr edi, 8
shr eax, 8
and edi, 0xff00ff
add edi, dword [esp + 0x50]
and eax, 0xff00
add eax, edi
mov dword [ecx], eax
movzx eax, bl
add esi, 4
add ecx, 4
cmp eax, 1
mov dword [esp + 0x50], eax
jle 0x57a06c
add eax, 0xffffffff
mov dword [esp + 0x48], eax
mov edi, dword [esi]
mov eax, edi
shr eax, 0x18
mov edx, pe_nt_image_headers32
sub edx, eax
mov eax, dword [ecx]
mov ebx, eax
and ebx, 0xff00ff
and eax, 0xff00
imul ebx, edx
imul eax, edx
shr ebx, 8
shr eax, 8
and ebx, 0xff00ff
and eax, 0xff00
add ebx, edi
add eax, ebx
mov dword [ecx], eax
add esi, 4
add ecx, 4
sub dword [esp + 0x48], 1
jne 0x57a021
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x20]
add dword [esp + 0x18], eax
sub edx, eax
test edx, edx
mov dword [esp + 0x20], edx
jg 0x579f70
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + 0x90]
mov ecx, dword [ebp + 8]
cdq
and edx, 3
add eax, edx
mov edx, dword [esp + 0x28]
sar eax, 2
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 0x24]
add dword [esp + 0x44], eax
lea ecx, [edx + eax*4]
mov eax, dword [esp + 0x58]
mov edx, dword [ebp + 0x14]
add eax, 1
cmp eax, dword [edx + 0xc]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x58], eax
jl 0x579f4b
jmp 0x57b7e2
mov eax, dword [esi + 0xc]
mov ecx, dword [esi]
imul ecx, eax
mov dword [esp + 0x14], eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [esi + 4]
imul ecx, dword [esp + 0x14]
mov esi, dword [esi + 8]
imul esi, dword [esp + 0x14]
sar edx, 7
mov edi, edx
shr edi, 0x1f
add edi, edx
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, 0x80808081
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, ecx
mov dword [esp + 0x40], edi
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x58], eax
jne 0x57a30b
cmp ecx, eax
jne 0x57a30b
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0xc], 0
mov dword [esp + 0x58], 0
jle 0x57b7e2
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
test eax, eax
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x30], eax
jle 0x57a2bc
lea esp, [esp]
mov eax, dword [esp + 0x18]
mov al, byte [eax]
mov ecx, dword [edx]
movzx ebx, al
cmp ebx, dword [esp + 0x30]
jle 0x57a195
mov al, byte [esp + 0x30]
shr ecx, 0x18
cmp ecx, 0xff
jne 0x57a1fc
cmp dword [esp + 0x14], ecx
jne 0x57a213
movzx ecx, al
test ecx, ecx
jle 0x57a2a6
mov dword [esp + 0x48], ecx
lea esp, [esp]
mov eax, dword [edx]
mov ebx, eax
and ebx, 0xff00ff
and eax, 0xff00
imul ebx, edi
imul eax, edi
shr ebx, 8
shr eax, 8
and ebx, 0xff00ff
and eax, 0xff00
add ebx, eax
mov dword [esi], ebx
add edx, 4
add esi, 4
sub dword [esp + 0x48], 1
jne 0x57a1c0
jmp 0x57a2a6
test ecx, ecx
jne 0x57a213
movzx ecx, al
lea eax, [ecx*4]
add esi, eax
add edx, eax
jmp 0x57a2a6
movzx ecx, al
test ecx, ecx
mov dword [esp + 0x50], ecx
jle 0x57a2a6
mov dword [esp + 0x48], ecx
mov ecx, dword [edx]
add edx, 4
mov dword [esp + 0x38], edx
mov edx, ecx
shr edx, 0x18
imul edx, dword [esp + 0x14]
mov eax, 0x80808081
mul edx
shr edx, 7
mov eax, edx
mov edx, pe_nt_image_headers32
sub edx, eax
mov eax, dword [esi]
mov ebx, eax
and ebx, 0xff00ff
mov edi, ecx
imul ebx, edx
and edi, 0xff00ff
imul edi, dword [esp + 0x40]
add ebx, edi
mov edi, dword [esp + 0x40]
and eax, 0xff00
imul eax, edx
mov edx, dword [esp + 0x38]
and ecx, 0xff00
imul ecx, edi
add eax, ecx
shr ebx, 8
shr eax, 8
and ebx, 0xff00ff
and eax, 0xff00
add ebx, eax
mov dword [esi], ebx
add esi, 4
sub dword [esp + 0x48], 1
jne 0x57a226
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x30]
add dword [esp + 0x18], ecx
sub eax, ecx
test eax, eax
mov dword [esp + 0x30], eax
jg 0x57a180
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + 0x90]
mov ecx, dword [ebp + 8]
cdq
and edx, 3
add eax, edx
mov edx, dword [esp + 0x28]
sar eax, 2
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 0x24]
add dword [esp + 0x44], eax
lea ecx, [edx + eax*4]
mov eax, dword [esp + 0x58]
mov edx, dword [ebp + 0x14]
add eax, 1
cmp eax, dword [edx + 0xc]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x58], eax
jl 0x57a157
jmp 0x57b7e2
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0xc], 0
mov dword [esp + 0x2c], 0
jle 0x57b7e2
mov ecx, dword [esp + 0x44]
mov eax, dword [ebp + 0x14]
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x10], ecx
mov ecx, dword [eax + 8]
test ecx, ecx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x20], ecx
jle 0x57a4e7
jmp 0x57a354
mov ecx, dword [esp + 0x20]
mov eax, dword [edx]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x10]
mov al, byte [eax]
movzx edi, al
cmp edi, ecx
jle 0x57a36b
mov al, byte [esp + 0x20]
mov ecx, dword [esp + 0x50]
shr ecx, 0x18
cmp ecx, 0xff
jne 0x57a3fa
cmp dword [esp + 0x14], ecx
jne 0x57a415
movzx edi, al
test edi, edi
mov dword [esp + 0x18], edi
jle 0x57a4d1
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x30]
nop
mov eax, dword [edx]
mov ecx, eax
and ecx, ebx
imul ecx, dword [esp + 0x58]
shr ecx, 8
and ecx, ebx
mov ebx, eax
and ebx, edi
imul ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x30]
shr ebx, 8
and ebx, edi
add ecx, ebx
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x60]
and eax, ecx
imul eax, dword [esp + 0x40]
shr eax, 8
and eax, ecx
mov ecx, dword [esp + 0x50]
add ecx, eax
mov dword [esi], ecx
add edx, 4
add esi, 4
sub dword [esp + 0x48], 1
jne 0x57a3a0
mov dword [esp + 0x4c], esi
jmp 0x57a4cd
test ecx, ecx
jne 0x57a415
movzx edi, al
lea eax, [edi*4]
add esi, eax
mov dword [esp + 0x4c], esi
add edx, eax
jmp 0x57a4d1
movzx edi, al
test edi, edi
mov dword [esp + 0x18], edi
jle 0x57a4d1
mov dword [esp + 0x48], edi
jmp 0x57a430
mov ecx, dword [edx]
add edx, 4
mov dword [esp + 0x38], edx
mov edx, ecx
shr edx, 0x18
imul edx, dword [esp + 0x14]
mov eax, 0x80808081
mul edx
shr edx, 7
mov eax, edx
mov edx, pe_nt_image_headers32
sub edx, eax
mov eax, dword [esi]
mov edi, eax
and edi, ebx
imul edi, edx
mov esi, ecx
and esi, ebx
imul esi, dword [esp + 0x58]
add edi, esi
mov esi, dword [esp + 0x30]
mov ebx, eax
and ebx, esi
imul ebx, edx
mov dword [esp + 0x50], edx
mov edx, ecx
and edx, esi
imul edx, dword [esp + 0x5c]
add ebx, edx
mov edx, dword [esp + 0x60]
and eax, edx
imul eax, dword [esp + 0x50]
and ecx, edx
imul ecx, dword [esp + 0x40]
shr edi, 8
and edi, dword [esp + 0x34]
shr ebx, 8
and ebx, esi
mov esi, dword [esp + 0x4c]
add eax, ecx
shr eax, 8
add edi, ebx
mov ebx, dword [esp + 0x34]
and eax, edx
mov edx, dword [esp + 0x38]
add edi, eax
mov dword [esi], edi
add esi, 4
sub dword [esp + 0x48], 1
mov dword [esp + 0x4c], esi
jne 0x57a430
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
add dword [esp + 0x10], edi
sub eax, edi
test eax, eax
mov dword [esp + 0x20], eax
jg 0x57a350
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x90]
mov ecx, dword [esp + 0x28]
cdq
and edx, 3
add eax, edx
sar eax, 2
lea edx, [ecx + eax*4]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x24]
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x44], eax
mov dword [esp + 0x28], edx
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x2c]
mov ecx, dword [ebp + 0x14]
add eax, 1
cmp eax, dword [ecx + 0xc]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x2c], eax
jl 0x57a320
jmp 0x57b7e2
mov edx, dword [ebp + 8]
mov ecx, dword [ebx + 4]
imul ecx, dword [edx + 0x24]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x4c]
mov edx, dword [ebx]
add eax, ecx
add eax, edx
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0xd4]
cmp eax, 0x10
jne 0x57b144
mov eax, dword [edi + 0x90]
imul eax, dword [ebp + 0x10]
cdq
sub eax, edx
mov edx, dword [edi + 0xa4]
sar eax, 1
add eax, dword [ebp + 0xc]
lea eax, [edx + eax*2]
mov edx, dword [ebx]
mov dword [esp + 0x44], eax
lea eax, [ecx + edx]
add eax, dword [esp + 0x30]
mov ecx, dword [edi + 0xdc]
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0xd8]
mov edi, dword [edi + 0xe0]
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x5c], edi
call fcn.0056a440
test al, al
je 0x57ab03
mov eax, dword [esp + 0x28]
cmp eax, 0x7e0
jne 0x57a767
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x48], 0
jle 0x57b7e2
jmp 0x57a5e0
mov eax, dword [ebp + 0x14]
mov edx, dword [esp + 0x38]
mov ebx, dword [eax + 8]
test ebx, ebx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x18], ebx
jle 0x57a723
movzx eax, byte [edx]
mov eax, dword [esi + eax*4]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x10]
mov al, byte [eax]
movzx edi, al
cmp edi, ebx
mov byte [esp + 0x1f], al
jle 0x57a625
mov al, byte [esp + 0x18]
mov byte [esp + 0x1f], al
mov ebx, dword [esp + 0x2c]
shr ebx, 0x18
mov edi, pe_nt_image_headers32
sub edi, ebx
cmp edi, 1
jne 0x57a65f
movzx edi, al
test edi, edi
jle 0x57a70d
mov eax, edi
movzx ebx, byte [edx]
mov bx, word [esi + ebx*4]
mov word [ecx], bx
add ecx, 2
add edx, 1
sub eax, 1
jne 0x57a645
jmp 0x57a70d
cmp edi, 0x100
jne 0x57a674
movzx edi, al
lea ecx, [ecx + edi*2]
add edx, edi
jmp 0x57a70d
movzx ebx, word [ecx]
mov eax, ebx
shl eax, 0x10
or eax, ebx
sar edi, 3
and eax, 0x7e0f81f
imul eax, edi
sar eax, 5
and eax, 0x7e0f81f
mov edi, eax
shr edi, 0x10
or edi, eax
add edi, dword [esp + 0x2c]
add edx, 1
mov word [ecx], di
movzx edi, byte [esp + 0x1f]
add ecx, 2
cmp edi, 1
mov dword [esp + 0x24], edi
jle 0x57a70d
add edi, 0xffffffff
mov dword [esp + 0x2c], edi
movzx eax, byte [edx]
mov eax, dword [esi + eax*4]
movzx edi, word [ecx]
mov ebx, eax
mov dword [esp + 0x50], eax
shr ebx, 0x18
mov eax, pe_nt_image_headers32
sub eax, ebx
mov ebx, edi
shl ebx, 0x10
or ebx, edi
shr eax, 3
and ebx, 0x7e0f81f
imul eax, ebx
sar eax, 5
and eax, 0x7e0f81f
mov edi, eax
shr edi, 0x10
or edi, eax
add edi, dword [esp + 0x50]
add edx, 1
mov word [ecx], di
add ecx, 2
sub dword [esp + 0x2c], 1
jne 0x57a6ba
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x18]
add dword [esp + 0x10], edi
sub ebx, edi
test ebx, ebx
mov dword [esp + 0x18], ebx
jg 0x57a602
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + 0x90]
mov ecx, dword [ebp + 8]
cdq
sub eax, edx
mov edx, dword [esp + 0x44]
sar eax, 1
lea eax, [edx + eax*2]
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 0x24]
add dword [esp + 0x3c], eax
add dword [esp + 0x38], eax
mov eax, dword [esp + 0x48]
add eax, 1
cmp eax, dword [edx + 0xc]
mov dword [esp + 0x48], eax
jl 0x57a5e0
jmp 0x57b7e2
cmp eax, 0x3e0
jne 0x57a912
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x48], 0
jle 0x57b7e2
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x14]
mov ebx, dword [eax + 8]
test ebx, ebx
mov dword [esp + 0x18], ebx
jle 0x57a8ce
movzx eax, byte [edx]
mov eax, dword [esi + eax*4]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x10]
mov al, byte [eax]
movzx edi, al
cmp edi, ebx
mov byte [esp + 0x1f], al
jle 0x57a7c9
mov al, byte [esp + 0x18]
mov byte [esp + 0x1f], al
mov ebx, dword [esp + 0x2c]
shr ebx, 0x18
mov edi, pe_nt_image_headers32
sub edi, ebx
cmp edi, 1
jne 0x57a80a
movzx edi, al
test edi, edi
jle 0x57a8b8
mov eax, edi
lea esp, [esp]
movzx ebx, byte [edx]
mov bx, word [esi + ebx*4]
mov word [ecx], bx
add ecx, 2
add edx, 1
sub eax, 1
jne 0x57a7f0
jmp 0x57a8b8
cmp edi, 0x100
jne 0x57a81f
movzx edi, al
lea ecx, [ecx + edi*2]
add edx, edi
jmp 0x57a8b8
movzx ebx, word [ecx]
mov eax, ebx
shl eax, 0x10
or eax, ebx
sar edi, 3
and eax, 0x3e07c1f
imul eax, edi
sar eax, 5
and eax, 0x3e07c1f
mov edi, eax
shr edi, 0x10
or edi, eax
add edi, dword [esp + 0x2c]
add edx, 1
mov word [ecx], di
movzx edi, byte [esp + 0x1f]
add ecx, 2
cmp edi, 1
mov dword [esp + 0x24], edi
jle 0x57a8b8
add edi, 0xffffffff
mov dword [esp + 0x2c], edi
movzx eax, byte [edx]
mov eax, dword [esi + eax*4]
movzx edi, word [ecx]
mov ebx, eax
mov dword [esp + 0x50], eax
shr ebx, 0x18
mov eax, pe_nt_image_headers32
sub eax, ebx
mov ebx, edi
shl ebx, 0x10
or ebx, edi
shr eax, 3
and ebx, 0x3e07c1f
imul eax, ebx
sar eax, 5
and eax, 0x3e07c1f
mov edi, eax
shr edi, 0x10
or edi, eax
add edi, dword [esp + 0x50]
add edx, 1
mov word [ecx], di
add ecx, 2
sub dword [esp + 0x2c], 1
jne 0x57a865
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x18]
add dword [esp + 0x10], edi
sub ebx, edi
test ebx, ebx
mov dword [esp + 0x18], ebx
jg 0x57a7a6
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + 0x90]
mov ecx, dword [ebp + 8]
cdq
sub eax, edx
mov edx, dword [esp + 0x44]
sar eax, 1
lea eax, [edx + eax*2]
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 0x24]
add dword [esp + 0x3c], eax
add dword [esp + 0x38], eax
mov eax, dword [esp + 0x48]
add eax, 1
cmp eax, dword [edx + 0xc]
mov dword [esp + 0x48], eax
jl 0x57a784
jmp 0x57b7e2
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x5c], 0
jle 0x57b7e2
mov edx, dword [ebp + 0x14]
mov eax, dword [esp + 0x38]
mov ebx, dword [edx + 8]
test ebx, ebx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x58], ebx
jle 0x57aabf
movzx edx, byte [eax]
mov edx, dword [esi + edx*4]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x10]
mov dl, byte [edx]
mov byte [esp + 0x1f], dl
movzx edx, dl
cmp edx, ebx
jle 0x57a969
mov byte [esp + 0x1f], bl
mov ebx, dword [esp + 0x2c]
shr ebx, 0x18
mov edx, pe_nt_image_headers32
sub edx, ebx
cmp edx, 1
jne 0x57a9b0
movzx edx, byte [esp + 0x1f]
test edx, edx
jle 0x57aaa9
mov dword [esp + 0x2c], edx
lea ecx, [ecx]
movzx ebx, byte [eax]
mov bx, word [esi + ebx*4]
mov word [ecx], bx
add ecx, 2
add eax, 1
sub dword [esp + 0x2c], 1
jne 0x57a990
mov dword [esp + 0x14], ecx
jmp 0x57aaa9
cmp edx, 0x100
jne 0x57a9cb
movzx edx, byte [esp + 0x1f]
lea ecx, [ecx + edx*2]
mov dword [esp + 0x14], ecx
add eax, edx
jmp 0x57aaa9
add eax, 1
mov dword [esp + 0x4c], eax
movzx eax, word [ecx]
mov ebx, eax
and ebx, dword [esp + 0x28]
mov ecx, eax
and eax, dword [esp + 0x40]
imul ebx, edx
and ecx, edi
imul eax, edx
imul ecx, edx
movzx edx, byte [esp + 0x1f]
shr ebx, 8
and ebx, dword [esp + 0x28]
shr ecx, 8
add ebx, dword [esp + 0x2c]
and ecx, edi
shr eax, 8
and eax, dword [esp + 0x40]
add ebx, ecx
mov ecx, dword [esp + 0x14]
add eax, ebx
mov word [ecx], ax
add ecx, 2
cmp edx, 1
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], edx
jle 0x57aaa5
add edx, 0xffffffff
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x4c]
movzx edx, byte [eax]
mov edx, dword [esi + edx*4]
movzx ecx, word [ecx]
mov ebx, edx
add eax, 1
shr ebx, 0x18
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x4c], eax
mov eax, pe_nt_image_headers32
sub eax, ebx
mov ebx, dword [esp + 0x40]
and ebx, ecx
mov ecx, dword [esp + 0x28]
imul ebx, eax
and ecx, dword [esp + 0x2c]
shr ebx, 8
imul ecx, eax
and ebx, dword [esp + 0x40]
shr ecx, 8
and ecx, dword [esp + 0x28]
mov dword [esp + 0x50], eax
add ecx, edx
mov edx, edi
and edx, dword [esp + 0x2c]
add ecx, ebx
imul edx, eax
shr edx, 8
and edx, edi
add edx, ecx
mov ecx, dword [esp + 0x14]
mov word [ecx], dx
add ecx, 2
sub dword [esp + 0x48], 1
mov dword [esp + 0x14], ecx
jne 0x57aa2e
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x58]
add dword [esp + 0x10], edx
sub ebx, edx
test ebx, ebx
mov dword [esp + 0x58], ebx
jg 0x57a94a
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x90]
mov ecx, dword [esp + 0x44]
cdq
sub eax, edx
sar eax, 1
lea edx, [ecx + eax*2]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x24]
add dword [esp + 0x3c], eax
add dword [esp + 0x38], eax
mov eax, dword [esp + 0x5c]
mov ecx, dword [ebp + 0x14]
add eax, 1
cmp eax, dword [ecx + 0xc]
mov dword [esp + 0x44], edx
mov dword [esp + 0x5c], eax
jl 0x57a924
jmp 0x57b7e2
mov ecx, dword [ebp + 0x18]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx]
imul ecx, eax
mov dword [esp + 0x34], eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [ebp + 0x18]
mov edx, dword [edx + 4]
imul edx, dword [esp + 0x34]
mov dword [esp + 0x50], edx
mov eax, 0x80808081
imul edx
add edx, dword [esp + 0x50]
mov dword [esp + 0x14], ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 8]
imul edx, dword [esp + 0x34]
mov dword [esp + 0x50], edx
mov eax, 0x80808081
imul edx
add edx, dword [esp + 0x50]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, dword [esp + 0x20]
mov dword [esp + 0x48], eax
jne 0x57af12
cmp dword [esp + 0x20], eax
jne 0x57af12
mov eax, dword [esp + 0x28]
cmp eax, 0x7e0
jne 0x57ad50
sar ecx, 3
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x14], ecx
mov dword [esp + 0x48], 0
jle 0x57b7e2
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
test eax, eax
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], eax
jle 0x57ad0c
mov eax, dword [esp + 0x10]
mov al, byte [eax]
movzx ecx, byte [edx]
mov ecx, dword [esi + ecx*4]
movzx ebx, al
cmp ebx, dword [esp + 0x20]
jle 0x57abf0
mov al, byte [esp + 0x20]
shr ecx, 0x18
cmp ecx, 0xff
jne 0x57ac50
cmp dword [esp + 0x34], ecx
jne 0x57ac61
movzx ebx, al
test ebx, ebx
jle 0x57acf6
mov dword [esp + 0x2c], ebx
movzx ecx, byte [edx]
mov ecx, dword [esi + ecx*4]
mov eax, ecx
and eax, 0xf81f
shl ecx, 0x10
or eax, ecx
and eax, 0x7e0f81f
imul eax, dword [esp + 0x14]
shr eax, 5
and eax, 0x7e0f81f
mov ecx, eax
shr ecx, 0x10
or ecx, eax
mov word [edi], cx
add edx, 1
add edi, 2
sub dword [esp + 0x2c], 1
jne 0x57ac10
jmp 0x57acf6
test ecx, ecx
jne 0x57ac61
movzx ebx, al
lea edi, [edi + ebx*2]
add edx, ebx
jmp 0x57acf6
movzx ebx, al
test ebx, ebx
mov dword [esp + 0x50], ebx
jle 0x57acf6
mov dword [esp + 0x2c], ebx
movzx eax, byte [edx]
mov ecx, dword [esi + eax*4]
add edx, 1
mov dword [esp + 0x4c], edx
mov edx, ecx
shr edx, 0x18
imul edx, dword [esp + 0x34]
movzx ebx, word [edi]
mov eax, 0x80808081
mul edx
shr edx, 7
mov eax, edx
and ecx, 0xffff
mov edx, pe_nt_image_headers32
sub edx, eax
mov eax, ecx
and eax, 0xf81f
shl ecx, 0x10
or eax, ecx
mov ecx, ebx
shl ecx, 0x10
sar edx, 3
and eax, 0x7e0f81f
imul eax, dword [esp + 0x14]
or ecx, ebx
and ecx, 0x7e0f81f
imul ecx, edx
add eax, ecx
shr eax, 5
and eax, 0x7e0f81f
mov edx, eax
shr edx, 0x10
or edx, eax
mov word [edi], dx
mov edx, dword [esp + 0x4c]
add edi, 2
sub dword [esp + 0x2c], 1
jne 0x57ac74
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x20]
add dword [esp + 0x10], ebx
sub eax, ebx
test eax, eax
mov dword [esp + 0x20], eax
jg 0x57abd7
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x90]
mov ecx, dword [esp + 0x44]
cdq
sub eax, edx
sar eax, 1
lea edx, [ecx + eax*2]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x24]
add dword [esp + 0x3c], eax
add dword [esp + 0x38], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [ebp + 0x14]
add eax, 1
cmp eax, dword [ecx + 0xc]
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], eax
jl 0x57abb5
jmp 0x57b7e2
cmp eax, 0x3e0
jne 0x57af12
sar ecx, 3
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x14], ecx
mov dword [esp + 0x48], 0
jle 0x57b7e2
mov eax, dword [ebp + 0x14]
mov edx, dword [esp + 0x38]
mov eax, dword [eax + 8]
test eax, eax
mov edi, dword [esp + 0x44]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x20], eax
jle 0x57aece
mov eax, dword [esp + 0x10]
mov al, byte [eax]
movzx ecx, byte [edx]
mov ecx, dword [esi + ecx*4]
movzx ebx, al
cmp ebx, dword [esp + 0x20]
jle 0x57adaf
mov al, byte [esp + 0x20]
shr ecx, 0x18
cmp ecx, 0xff
jne 0x57ae11
cmp dword [esp + 0x34], ecx
jne 0x57ae22
movzx ebx, al
test ebx, ebx
jle 0x57aeb8
mov dword [esp + 0x2c], ebx
nop
movzx ecx, byte [edx]
mov ecx, dword [esi + ecx*4]
mov eax, ecx
shl eax, 0x10
and ecx, 0x7c1f
or eax, ecx
and eax, 0x3e07c1f
imul eax, dword [esp + 0x14]
shr eax, 5
and eax, 0x3e07c1f
mov ecx, eax
shr ecx, 0x10
or ecx, eax
mov word [edi], cx
add edx, 1
add edi, 2
sub dword [esp + 0x2c], 1
jne 0x57add0
jmp 0x57aeb8
test ecx, ecx
jne 0x57ae22
movzx ebx, al
lea edi, [edi + ebx*2]
add edx, ebx
jmp 0x57aeb8
movzx ebx, al
test ebx, ebx
mov dword [esp + 0x50], ebx
jle 0x57aeb8
mov dword [esp + 0x2c], ebx
movzx eax, byte [edx]
mov ecx, dword [esi + eax*4]
add edx, 1
mov dword [esp + 0x4c], edx
mov edx, ecx
shr edx, 0x18
imul edx, dword [esp + 0x34]
movzx ebx, word [edi]
mov eax, 0x80808081
mul edx
shr edx, 7
mov eax, edx
and ecx, 0xffff
mov edx, pe_nt_image_headers32
sub edx, eax
mov eax, ecx
shl eax, 0x10
and ecx, 0x7c1f
or eax, ecx
mov ecx, ebx
shl ecx, 0x10
sar edx, 3
and eax, 0x3e07c1f
imul eax, dword [esp + 0x14]
or ecx, ebx
and ecx, 0x3e07c1f
imul ecx, edx
add eax, ecx
shr eax, 5
and eax, 0x3e07c1f
mov edx, eax
shr edx, 0x10
or edx, eax
mov word [edi], dx
mov edx, dword [esp + 0x4c]
add edi, 2
sub dword [esp + 0x2c], 1
jne 0x57ae35
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x20]
add dword [esp + 0x10], ebx
sub eax, ebx
test eax, eax
mov dword [esp + 0x20], eax
jg 0x57ad96
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x90]
mov ecx, dword [esp + 0x44]
cdq
sub eax, edx
sar eax, 1
lea edx, [ecx + eax*2]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x24]
add dword [esp + 0x3c], eax
add dword [esp + 0x38], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [ebp + 0x14]
add eax, 1
cmp eax, dword [ecx + 0xc]
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], eax
jl 0x57ad74
jmp 0x57b7e2
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x24], 0
jle 0x57b7e2
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], edx
mov edx, dword [ebp + 0x14]
mov ebx, dword [edx + 8]
test ebx, ebx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x60], ebx
jle 0x57b100
movzx edx, byte [eax]
mov edx, dword [esi + edx*4]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x18]
mov dl, byte [edx]
mov byte [esp + 0x1f], dl
movzx edx, dl
cmp edx, ebx
jg 0x57af69
mov bl, byte [esp + 0x1f]
mov edx, dword [esp + 0x50]
shr edx, 0x18
cmp edx, 0xff
jne 0x57b003
cmp dword [esp + 0x34], edx
jne 0x57b018
movzx edx, bl
test edx, edx
mov dword [esp + 0x10], edx
jle 0x57b0ea
mov dword [esp + 0x2c], edx
lea esp, [esp]
movzx edx, byte [eax]
mov edx, dword [esi + edx*4]
mov ebx, dword [esp + 0x28]
add eax, 1
mov dword [esp + 0x4c], eax
and ebx, edx
imul ebx, dword [esp + 0x20]
mov dword [esp + 0x50], edx
mov eax, edi
and eax, edx
imul eax, dword [esp + 0x48]
mov edx, dword [esp + 0x40]
and edx, dword [esp + 0x50]
shr eax, 8
imul edx, dword [esp + 0x14]
shr ebx, 8
and ebx, dword [esp + 0x28]
and eax, edi
shr edx, 8
and edx, dword [esp + 0x40]
add eax, ebx
add eax, edx
mov word [ecx], ax
mov eax, dword [esp + 0x4c]
add ecx, 2
sub dword [esp + 0x2c], 1
jne 0x57afa0
mov dword [esp + 0x30], ecx
jmp 0x57b0e6
test edx, edx
jne 0x57b018
movzx edx, bl
lea ecx, [ecx + edx*2]
mov dword [esp + 0x30], ecx
add eax, edx
jmp 0x57b0ea
movzx edx, bl
test edx, edx
mov dword [esp + 0x10], edx
jle 0x57b0ea
mov dword [esp + 0x58], edx
jmp 0x57b030
movzx edx, byte [eax]
mov ebx, dword [esi + edx*4]
movzx ecx, word [ecx]
mov edx, ebx
shr edx, 0x18
imul edx, dword [esp + 0x34]
add eax, 1
mov dword [esp + 0x4c], eax
mov eax, 0x80808081
mul edx
shr edx, 7
mov dword [esp + 0x50], ecx
mov eax, pe_nt_image_headers32
sub eax, edx
mov edx, edi
and edx, ecx
mov ecx, edi
imul edx, eax
and ecx, ebx
imul ecx, dword [esp + 0x48]
add edx, ecx
mov ecx, dword [esp + 0x28]
shr edx, 8
and edx, edi
mov edi, ecx
and edi, dword [esp + 0x50]
and ecx, ebx
imul ecx, dword [esp + 0x20]
imul edi, eax
add edi, ecx
mov ecx, dword [esp + 0x30]
shr edi, 8
and edi, dword [esp + 0x28]
add ecx, 2
add edx, edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x50], edx
movzx edx, word [ecx - 2]
and edi, edx
mov edx, dword [esp + 0x40]
imul edi, eax
mov eax, dword [esp + 0x50]
and edx, ebx
imul edx, dword [esp + 0x14]
add edi, edx
shr edi, 8
and edi, dword [esp + 0x40]
mov dword [esp + 0x2c], ebx
add eax, edi
sub dword [esp + 0x58], 1
mov edi, dword [esp + 0x5c]
mov word [ecx - 2], ax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x30], ecx
jne 0x57b030
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x60]
add dword [esp + 0x18], edx
sub ebx, edx
test ebx, ebx
mov dword [esp + 0x60], ebx
jg 0x57af4a
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x90]
mov ecx, dword [esp + 0x44]
cdq
sub eax, edx
sar eax, 1
lea edx, [ecx + eax*2]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x24]
add dword [esp + 0x3c], eax
add dword [esp + 0x38], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [ebp + 0x14]
add eax, 1
cmp eax, dword [ecx + 0xc]
mov dword [esp + 0x44], edx
mov dword [esp + 0x24], eax
jl 0x57af24
jmp 0x57b7e2
cmp eax, 0x20
jne 0x57b7e2
mov eax, dword [edi + 0x90]
imul eax, dword [ebp + 0x10]
cdq
and edx, 3
add eax, edx
mov edx, dword [edi + 0xa4]
sar eax, 2
add eax, dword [ebp + 0xc]
lea eax, [edx + eax*4]
mov edx, dword [ebx]
mov ebx, dword [edi + 0xe0]
mov dword [esp + 0x40], eax
lea eax, [ecx + edx]
add eax, dword [esp + 0x30]
mov ecx, dword [edi + 0xdc]
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0xd8]
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x38], ebx
call fcn.0056a440
test al, al
je 0x57b351
mov edx, dword [ebp + 0x14]
cmp dword [edx + 0xc], 0
mov dword [esp + 0x48], 0
jle 0x57b7e2
mov edx, dword [ebp + 0x14]
mov edx, dword [edx + 8]
test edx, edx
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], edx
jle 0x57b309
movzx eax, byte [edi]
mov eax, dword [esi + eax*4]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
mov al, byte [eax]
movzx ebx, al
cmp ebx, edx
mov byte [esp + 0x1f], al
jle 0x57b203
mov al, dl
mov byte [esp + 0x1f], al
mov ebx, dword [esp + 0x24]
shr ebx, 0x18
mov edx, pe_nt_image_headers32
sub edx, ebx
cmp edx, 1
jne 0x57b23b
movzx eax, al
test eax, eax
jle 0x57b2f3
mov edx, eax
movzx ebx, byte [edi]
mov ebx, dword [esi + ebx*4]
mov dword [ecx], ebx
add ecx, 4
add edi, 1
sub edx, 1
jne 0x57b223
jmp 0x57b2f3
cmp edx, 0x100
jne 0x57b250
movzx eax, al
lea ecx, [ecx + eax*4]
add edi, eax
jmp 0x57b2f3
mov eax, dword [ecx]
mov ebx, eax
and ebx, 0xff00ff
and eax, 0xff00
imul ebx, edx
imul eax, edx
shr ebx, 8
shr eax, 8
and ebx, 0xff00ff
add ebx, dword [esp + 0x24]
and eax, 0xff00
add eax, ebx
mov dword [ecx], eax
movzx eax, byte [esp + 0x1f]
add edi, 1
add ecx, 4
cmp eax, 1
mov dword [esp + 0x58], eax
jle 0x57b2f3
add eax, 0xffffffff
mov dword [esp + 0x24], eax
lea esp, [esp]
movzx edx, byte [edi]
mov eax, dword [esi + edx*4]
mov dword [esp + 0x50], eax
shr eax, 0x18
mov edx, pe_nt_image_headers32
sub edx, eax
mov eax, dword [ecx]
mov ebx, eax
and ebx, 0xff00ff
imul ebx, edx
and eax, 0xff00
imul eax, edx
shr ebx, 8
and ebx, 0xff00ff
add ebx, dword [esp + 0x50]
shr eax, 8
and eax, 0xff00
add eax, ebx
mov dword [ecx], eax
add edi, 1
add ecx, 4
sub dword [esp + 0x24], 1
jne 0x57b2a0
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x2c]
add dword [esp + 0x10], eax
sub edx, eax
test edx, edx
mov dword [esp + 0x2c], edx
jg 0x57b1e2
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x90]
mov ecx, dword [esp + 0x40]
cdq
and edx, 3
add eax, edx
sar eax, 2
lea edx, [ecx + eax*4]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x24]
add dword [esp + 0x3c], eax
add dword [esp + 0x28], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [ebp + 0x14]
add eax, 1
cmp eax, dword [ecx + 0xc]
mov dword [esp + 0x40], edx
mov dword [esp + 0x48], eax
jl 0x57b1c0
jmp 0x57b7e2
mov ecx, dword [ebp + 0x18]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx]
imul ecx, eax
mov dword [esp + 0x14], eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov edi, edx
shr edi, 0x1f
add edi, edx
mov edx, dword [ebp + 0x18]
mov ecx, dword [edx + 4]
imul ecx, dword [esp + 0x14]
mov eax, 0x80808081
imul ecx
mov eax, dword [ebp + 0x18]
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [eax + 8]
imul edx, dword [esp + 0x14]
mov dword [esp + 0x50], edx
mov eax, 0x80808081
imul edx
add edx, dword [esp + 0x50]
mov dword [esp + 0x34], edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], eax
jne 0x57b5ac
cmp ecx, eax
jne 0x57b5ac
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0xc], 0
mov dword [esp + 0x2c], 0
jle 0x57b7e2
mov eax, dword [ebp + 0x14]
mov edx, dword [esp + 0x28]
mov eax, dword [eax + 8]
test eax, eax
mov edi, dword [esp + 0x40]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x20], edi
mov dword [esp + 0x30], eax
jle 0x57b564
lea esp, [esp]
mov eax, dword [esp + 0x18]
mov al, byte [eax]
movzx ecx, byte [edx]
mov ecx, dword [esi + ecx*4]
movzx ebx, al
cmp ebx, dword [esp + 0x30]
jle 0x57b429
mov al, byte [esp + 0x30]
shr ecx, 0x18
cmp ecx, 0xff
jne 0x57b495
cmp dword [esp + 0x14], ecx
jne 0x57b4aa
movzx eax, al
test eax, eax
mov dword [esp + 0x10], eax
jle 0x57b54e
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x24], eax
movzx eax, byte [edx]
mov eax, dword [esi + eax*4]
mov ebx, eax
and ebx, 0xff00ff
and eax, 0xff00
imul ebx, ecx
imul eax, ecx
shr ebx, 8
shr eax, 8
and ebx, 0xff00ff
and eax, 0xff00
add ebx, eax
mov dword [edi], ebx
add edx, 1
add edi, 4
sub dword [esp + 0x24], 1
jne 0x57b451
mov dword [esp + 0x20], edi
jmp 0x57b54a
test ecx, ecx
jne 0x57b4aa
movzx eax, al
lea edi, [edi + eax*4]
mov dword [esp + 0x20], edi
add edx, eax
jmp 0x57b54e
movzx eax, al
test eax, eax
mov dword [esp + 0x10], eax
jle 0x57b54e
mov dword [esp + 0x24], eax
lea ecx, [ecx]
movzx ecx, byte [edx]
mov ecx, dword [esi + ecx*4]
add edx, 1
mov dword [esp + 0x4c], edx
mov edx, ecx
shr edx, 0x18
imul edx, dword [esp + 0x14]
mov eax, 0x80808081
mul edx
shr edx, 7
mov eax, edx
mov edx, pe_nt_image_headers32
sub edx, eax
mov eax, dword [edi]
mov ebx, eax
and ebx, 0xff00ff
mov edi, ecx
imul ebx, edx
and eax, 0xff00
and edi, 0xff00ff
imul eax, edx
imul edi, dword [esp + 0x34]
mov edx, dword [esp + 0x4c]
and ecx, 0xff00
imul ecx, dword [esp + 0x34]
add ebx, edi
mov edi, dword [esp + 0x20]
add eax, ecx
shr ebx, 8
shr eax, 8
and ebx, 0xff00ff
and eax, 0xff00
add ebx, eax
mov dword [edi], ebx
add edi, 4
sub dword [esp + 0x24], 1
mov dword [esp + 0x20], edi
jne 0x57b4c0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
add dword [esp + 0x18], eax
sub ecx, eax
test ecx, ecx
mov dword [esp + 0x30], ecx
jg 0x57b410
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + 0x90]
mov ecx, dword [ebp + 8]
cdq
and edx, 3
add eax, edx
mov edx, dword [esp + 0x40]
sar eax, 2
lea eax, [edx + eax*4]
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x40], eax
mov eax, dword [ecx + 0x24]
add dword [esp + 0x3c], eax
add dword [esp + 0x28], eax
mov eax, dword [esp + 0x2c]
add eax, 1
cmp eax, dword [edx + 0xc]
mov dword [esp + 0x2c], eax
jl 0x57b3e6
jmp 0x57b7e2
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0xc], 0
mov dword [esp + 0x44], 0
jle 0x57b7e2
mov ecx, dword [esp + 0x28]
mov eax, dword [ebp + 0x14]
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 8]
test ecx, ecx
mov dword [esp + 0x30], edi
mov dword [esp + 0x60], ecx
jle 0x57b79f
movzx eax, byte [edx]
mov eax, dword [esi + eax*4]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x18]
mov al, byte [eax]
mov byte [esp + 0x1f], al
movzx eax, al
cmp eax, ecx
jg 0x57b606
mov cl, byte [esp + 0x1f]
mov eax, dword [esp + 0x50]
shr eax, 0x18
cmp eax, 0xff
jne 0x57b6a6
cmp dword [esp + 0x14], eax
jne 0x57b6bb
movzx eax, cl
test eax, eax
mov dword [esp + 0x10], eax
jle 0x57b789
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
lea esp, [esp]
movzx eax, byte [edx]
mov eax, dword [esi + eax*4]
add edx, 1
mov dword [esp + 0x4c], edx
mov edx, eax
and edx, ebx
imul edx, dword [esp + 0x2c]
shr edx, 8
and edx, ebx
mov ebx, eax
and ebx, ecx
imul ebx, dword [esp + 0x48]
mov ecx, dword [esp + 0x20]
shr ebx, 8
and ebx, ecx
add edx, ebx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x58]
and eax, edx
imul eax, dword [esp + 0x34]
shr eax, 8
and eax, edx
mov edx, dword [esp + 0x50]
add edx, eax
mov dword [edi], edx
mov edx, dword [esp + 0x4c]
add edi, 4
sub dword [esp + 0x24], 1
jne 0x57b640
mov dword [esp + 0x30], edi
jmp 0x57b785
test eax, eax
jne 0x57b6bb
movzx eax, cl
lea edi, [edi + eax*4]
mov dword [esp + 0x30], edi
add edx, eax
jmp 0x57b789
movzx eax, cl
test eax, eax
mov dword [esp + 0x10], eax
jle 0x57b789
mov dword [esp + 0x24], eax
mov edi, edi
movzx ecx, byte [edx]
mov ecx, dword [esi + ecx*4]
add edx, 1
mov dword [esp + 0x4c], edx
mov edx, ecx
shr edx, 0x18
imul edx, dword [esp + 0x14]
mov eax, 0x80808081
mul edx
shr edx, 7
mov eax, edx
mov edx, pe_nt_image_headers32
sub edx, eax
mov eax, dword [edi]
mov esi, eax
and esi, ebx
imul esi, edx
mov edi, ecx
and edi, ebx
imul edi, dword [esp + 0x2c]
add esi, edi
shr esi, 8
and esi, dword [esp + 0x38]
mov edi, eax
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x20]
and edi, esi
imul edi, edx
mov dword [esp + 0x64], edx
mov edx, ecx
and edx, esi
imul edx, dword [esp + 0x48]
add edi, edx
mov edx, dword [esp + 0x50]
shr edi, 8
and edi, esi
add edx, edi
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x58]
and eax, edx
imul eax, dword [esp + 0x64]
and ecx, edx
imul ecx, dword [esp + 0x34]
add eax, ecx
mov ecx, dword [esp + 0x50]
shr eax, 8
and eax, edx
mov edx, dword [esp + 0x4c]
add ecx, eax
mov dword [edi], ecx
add edi, 4
sub dword [esp + 0x24], 1
mov dword [esp + 0x30], edi
jne 0x57b6d0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x60]
add dword [esp + 0x18], eax
sub ecx, eax
test ecx, ecx
mov dword [esp + 0x60], ecx
jg 0x57b5e7
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x90]
mov ecx, dword [esp + 0x40]
cdq
and edx, 3
add eax, edx
sar eax, 2
lea edx, [ecx + eax*4]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x24]
add dword [esp + 0x3c], eax
add dword [esp + 0x28], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [ebp + 0x14]
add eax, 1
cmp eax, dword [ecx + 0xc]
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
jl 0x57b5c1
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc0]
call eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14