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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x168
mov eax, dword [ebp + 8]
mov dword [esp + 0x88], ecx
imul ecx, dword [edx + 0x70e4], 0x170
mov ebx, edx
mov byte [eax + 0x18], 0
mov byte [eax + 0x1d], 0xc
and dword [eax + 4], 0
and dword [eax], 0
and dword [eax + 0xc], 0
and dword [eax + 8], 0
and dword [eax + 0x10], 0
mov eax, dword [edx + 0x70dc]
test ecx, ecx
je 0x454acc
and dword [eax + 0x110], 0
add eax, 0x170
add ecx, 0xfffffe90
jmp 0x454ab4
movzx ecx, byte [ebx + 0x714e]
movzx edi, byte [ebx + 0x7153]
lea esi, [ebx + 0x7153]
call fcn.0044e2fd
cmp eax, edi
jae 0x454b64
lea ecx, [esp + 0xe8]
mov dword [ecx], eax
lea eax, [esp + 0x30]
mov dword [eax], esi
lea esi, [esp + 0x50]
mov dword [eax + 4], fcn.0043d3d0
mov dword [eax + 8], ecx
mov dword [eax + 0xc], fcn.00437820
mov dword [esi], 0x5a462c
push 2
pop ecx
mov dword [esi + 4], ecx
and dword [esi + 0x10], 0
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
lea edi, [esp + 0x140]
mov ecx, edi
mov edx, esi
call fcn.0044d6b4
movsd xmm0, qword [edi]
mov eax, dword [edi + 8]
movsd qword [esi + 3], xmm0
mov dword [esi + 0xb], eax
mov eax, dword [esp + 0x88]
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 7]
mov byte [eax], 0
movsd qword [eax + 1], xmm0
movsd qword [eax + 8], xmm1
jmp 0x458813
mov al, byte [ebx + 0x7150]
mov edx, edi
mov dword [esp + 4], ebx
cmp dl, 1
jne 0x454b9f
test al, al
je 0x454bde
cmp byte [ebx + 0x714f], 0
jne 0x454bde
mov eax, dword [esp + 0x88]
mov byte [eax], 1
mov dword [eax + 4], str.Cant_merge_DC_and_AC_corrupt_jpeg
mov dword [eax + 8], 0x22
jmp 0x458813
test al, al
je 0x454c45
push 0x22
pop esi
mov ecx, esi
xor edx, edx
call fcn.0045c366
mov edi, eax
mov ebx, edx
push esi
push str.Cant_merge_dc_and_AC_corrupt_jpegNumber_of_scans__cannot_be_greater_than_number_of_components_
push eax
call fcn.005669c0
add esp, 0xc
mov eax, dword [esp + 0x88]
mov byte [eax], 3
mov dword [eax + 4], edi
mov dword [eax + 8], ebx
mov dword [eax + 0xc], esi
jmp 0x458813
mov esi, dword [ebx + 0x7120]
mov edx, dword [ebx + 0x70e4]
cmp esi, edx
mov dword [esp + 0x118], esi
jae 0x454cd4
mov ecx, dword [ebx + 0x70dc]
push 0x5a4404
push esi
call fcn.00452d2d
pop ecx
pop edx
cmp byte [eax + 0x16a], 0
je 0x455010
cmp byte [ebx + 0x7148], 0
je 0x455058
mov eax, dword [ebx + 0x7118]
mov ecx, dword [ebx + 0x711c]
mov dword [esp + 0xd0], eax
mov dword [esp + 0x114], ecx
jmp 0x455088
lea eax, [ebx + 0x410]
xor ebx, ebx
mov dword [esp], esi
mov dword [esp + 0x1c], eax
xor eax, eax
cmp al, dl
adc bl, 0
cmp al, dl
jae 0x454cef
movzx ecx, al
cmp al, 4
jae 0x45883c
mov esi, dword [esp + 4]
mov edi, edx
mov eax, dword [esi + ecx*4 + 0x7120]
mov edx, dword [esi + 0x70e4]
cmp eax, edx
mov dword [esp + 0x98], eax
jae 0x454fd1
mov ecx, dword [esi + 0x70dc]
push 0x5a45bc
push eax
call fcn.00452d2d
pop ecx
pop edx
mov ecx, dword [eax + 0x108]
cmp ecx, 3
ja 0x45858a
mov edx, dword [esp + 0x1c]
imul ecx, ecx, 0xd94
cmp word [edx + ecx + 0x990], 2
je 0x4585bb
mov esi, dword [esp]
mov eax, ebx
mov edx, edi
jmp 0x454c56
lea esi, [esp + 0x50]
lea eax, [esp + 0x118]
lea ecx, [esp + 0x30]
lea edi, [esp + 0x14c]
jmp 0x454fe7
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x711c]
add ecx, 0x70f0
mov dword [esp + 0x20], ecx
xor ecx, ecx
mov dword [esp + 0x78], eax
cmp ecx, eax
je 0x458628
mov dword [esp + 0x14], ecx
inc ecx
xor edx, edx
mov dword [esp + 0xac], ecx
mov ecx, dword [esp + 4]
mov ecx, dword [ecx + 0x7118]
mov dword [esp + 0xc], ecx
cmp edx, ecx
je 0x454fc5
mov al, byte [esi]
mov dword [esp + 0x2c], edx
inc edx
mov dword [esp + 0x94], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0xd0], edx
mov byte [esp + 0x74], al
mov edi, dword [esp + 0x94]
mov bl, byte [esp + 0x74]
mov eax, edi
cmp al, bl
mov eax, dword [esp + 0x28]
adc al, 0
mov dword [esp + 0x28], eax
mov eax, edi
cmp al, bl
jae 0x454f7d
mov eax, dword [esp + 0x94]
movzx ecx, al
cmp al, 4
jae 0x458880
mov edx, dword [esp + 4]
mov eax, dword [edx + ecx*4 + 0x7120]
mov ecx, dword [edx + 0x70dc]
mov edx, dword [edx + 0x70e4]
push 0x5a4538
mov dword [esp + 0x98], eax
push eax
call fcn.00452d2d
pop ecx
pop edx
mov esi, eax
mov eax, dword [eax + 0x108]
mov dword [esp + 0x54], str.No_huffman_table_for_componentHuffman_table_at_index_not_initialized_CZ
mov dword [esp + 0x58], 0x1e
mov byte [esp + 0x50], 1
cmp eax, 3
ja 0x45881b
mov ebx, dword [esp + 0x1c]
imul edi, eax, 0xd94
lea eax, [ebx + edi]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x50]
push eax
call fcn.0044c3bb
pop eax
cmp word [ebx + edi + 0x990], 2
mov edx, dword [esp + 0x18]
mov eax, 0
mov dword [esp + 0x54], 0x5a4566
mov dword [esp + 0x58], 0x26
mov byte [esp + 0x50], 1
lea ecx, [esp + 0x30]
cmove edx, eax
lea eax, [esp + 0x50]
push eax
call fcn.004589cc
pop eax
mov al, byte [esp + 0x30]
cmp al, 0xd
jne 0x458743
mov eax, dword [esp + 0x34]
imul ecx, dword [esp + 0x94], 0xc
mov edi, dword [esi + 0x100]
xor ebx, ebx
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x24], edi
lea edx, [eax + ecx + 8]
add ecx, eax
mov eax, esi
add eax, 0x110
mov dword [esp + 0x80], edx
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xd0]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x28]
cmp ebx, edi
je 0x454f6c
lea edi, [ebx + 1]
mov dword [esp + 0x18], ebx
mov ebx, dword [esi + 0x104]
mov dword [esp + 0x4c], edi
xor edi, edi
cmp ebx, edi
je 0x454f5f
cmp dword [esp + 0x94], 3
ja 0x458846
mov ecx, dword [esi + 0x100]
mov eax, dword [esi + 0x104]
mov edx, dword [esp + 0x80]
imul ecx, dword [esp + 0x14]
imul eax, dword [esp + 0x2c]
mov edx, dword [edx]
add ecx, dword [esp + 0x18]
add eax, edi
imul ecx, dword [esi + 0x114]
shr ecx, 3
add eax, ecx
shl eax, 6
cmp edx, eax
jbe 0x458857
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 4]
add eax, eax
add eax, dword [ecx]
cmp byte [edx + 0x7151], 0
je 0x454f22
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x50]
push eax
push dword [esp + 0x24]
call fcn.00459300
pop eax
pop ecx
jmp 0x454f3e
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x50]
push dword [esp + 0x44]
push eax
push dword [esp + 0x50]
push dword [esp + 0x2c]
call fcn.004589f2
add esp, 0x10
mov al, byte [esp + 0x50]
cmp al, 0xd
jne 0x458566
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xd0]
mov eax, dword [esp + 0x28]
inc edi
jmp 0x454ea6
mov ebx, dword [esp + 0x4c]
mov edi, dword [esp + 0x24]
jmp 0x454e8b
mov esi, dword [esp]
mov ebx, eax
mov dword [esp + 0x94], ebx
jmp 0x454d5a
mov eax, dword [esp + 4]
dec dword [eax + 0x7134]
mov eax, dword [esp + 0x78]
jne 0x454d2d
mov edx, dword [esp + 4]
lea ecx, [esp + 0x50]
push dword [ebp + 8]
call fcn.00577210
pop eax
mov al, byte [esp + 0x50]
cmp al, 0xd
jne 0x458566
mov edx, dword [esp + 0xd0]
mov esi, dword [esp]
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xc]
jmp 0x454d2d
mov ecx, dword [esp + 0xac]
jmp 0x454d09
lea esi, [esp + 0x50]
lea eax, [esp + 0x98]
lea ecx, [esp + 0x30]
lea edi, [esp + 0x158]
mov dword [esi], str.Cannot_find_component___corrupt_image
mov dword [esi + 4], 2
and dword [esi + 0x10], 0
mov dword [ecx], eax
mov dword [esi + 8], ecx
mov dword [ecx + 4], fcn.00437820
mov dword [esi + 0xc], 1
jmp 0x454b2a
mov ecx, dword [ebx + 0x70dc]
mov edx, dword [ebx + 0x70e4]
push 0x5a4414
push esi
call fcn.00452d2d
pop ecx
pop edx
cmp dword [eax + 0x100], 1
jne 0x455058
mov ecx, dword [ebx + 0x70dc]
mov edx, dword [ebx + 0x70e4]
push 0x5a4424
push esi
call fcn.00452d2d
pop ecx
pop edx
cmp dword [eax + 0x104], 1
je 0x454c19
mov ecx, dword [ebx + 0x70d0]
movzx edx, word [ebx + 0x70d2]
mov eax, 0xffff
add ecx, 7
add edx, 7
and ecx, eax
and edx, eax
shr ecx, 3
shr edx, 3
mov dword [esp + 0xd0], ecx
mov dword [esp + 0x114], edx
lea eax, [ebx + 0x3a60]
mov dword [esp + 0x134], eax
lea eax, [ebx + 0x70f0]
mov dword [esp + 0x100], eax
lea eax, [ebx + 0x410]
mov dword [esp + 0x104], eax
xor eax, eax
cmp eax, dword [esp + 0x114]
je 0x458628
mov dword [esp + 0x138], eax
inc eax
xor esi, esi
mov dword [esp + 0x13c], eax
cmp byte [ebx + 0x714f], 0
mov dword [esp + 0x1c], edx
setne cl
cmp byte [ebx + 0x7151], 0
mov ebx, esi
sete al
and al, cl
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x10]
cmp dword [esp + 0xd0], ebx
je 0x458556
test ecx, ecx
lea esi, [ebx + 1]
setg dl
test al, dl
je 0x455119
mov edx, dword [ebp + 8]
dec ecx
mov ebx, esi
mov dword [edx + 0x10], ecx
mov edx, dword [esp + 0x1c]
jmp 0x4550f1
mov eax, dword [esp + 4]
mov edi, dword [esp + 0x118]
mov dword [esp + 0xfc], esi
mov ecx, dword [eax + 0x70dc]
mov edx, dword [eax + 0x70e4]
push 0x5a4434
push edi
call fcn.00452d2d
pop ecx
pop edx
cmp edi, 4
jae 0x4588ab
mov ecx, dword [eax + 0x114]
mov esi, dword [ebp + 0xc]
imul edx, edi, 0xc
shr ecx, 3
imul ecx, dword [esp + 0x138]
add ecx, ebx
mov eax, ecx
shl ecx, 7
shl eax, 6
add ecx, dword [esi + edx]
or eax, 0x3f
cmp eax, dword [esi + edx + 8]
mov eax, 0
cmovae ecx, eax
push 0x40
pop edx
push 0x5a4454
call fcn.0044f4c4
pop ecx
cmp edx, 0x40
mov dword [esp + 0x94], eax
jne 0x45888a
mov ebx, dword [esp + 4]
cmp byte [ebx + 0x714f], 0
je 0x4552e6
mov ecx, dword [ebx + 0x70dc]
mov edx, dword [ebx + 0x70e4]
push 0x5a44e0
push edi
call fcn.00452d2d
pop ecx
pop edx
mov eax, dword [eax + 0x10c]
cmp eax, 3
mov dword [esp + 0x11c], eax
ja 0x458691
mov ecx, dword [esp + 0x134]
imul edx, eax, 0xd94
movzx eax, word [ecx + edx + 0x990]
cmp ax, 2
je 0x45869d
add edx, ecx
cmp byte [ebx + 0x7151], 0
mov dword [esp + 0x28], edx
je 0x4553d5
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + 0x1a]
mov edi, dword [eax + 0x10]
mov bl, byte [eax + 0x1b]
and ecx, 0x1f
xor edx, edx
inc edx
shl edx, cl
test edi, edi
mov dword [esp + 0x80], edx
je 0x45603f
mov edx, dword [esp + 0x1c]
mov bh, byte [esp + 0x2c]
test edi, edi
jle 0x457338
mov eax, dword [esp + 0x94]
mov dword [esp + 0x1c], edx
add eax, 2
push 0x7e
push 0x5a4864
push eax
call fcn.0056709a
add esp, 0xc
test eax, eax
je 0x457341
mov edi, dword [ebp + 8]
mov al, byte [edi + 0x18]
cmp al, 0x1f
ja 0x457351
cmp byte [edi + 0x1d], 0xc
mov edx, dword [esp + 0x1c]
mov byte [esp + 0xc], al
jne 0x457355
mov edx, dword [esp + 4]
mov byte [esp + 0x18], bl
mov esi, 0xffffffff
mov edi, dword [edx + 0x70f8]
mov ebx, dword [edx + 0x70f4]
mov eax, edi
mov dword [esp], ebx
add eax, 4
mov ecx, eax
cmovb ecx, esi
cmp ecx, ebx
ja 0x457430
xor ebx, ebx
cmp edi, 0xfffffffb
ja 0x4573e2
cmp dword [esp], eax
jb 0x4573e2
mov esi, dword [esp + 4]
mov ecx, dword [esi + 0x70f0]
mov ebx, dword [ecx + edi]
mov dword [esi + 0x70f8], eax
bswap ebx
jmp 0x4573e4
mov ecx, dword [ebx + 0x70dc]
mov edx, dword [ebx + 0x70e4]
push 0x5a4474
push edi
call fcn.00452d2d
pop ecx
pop edx
mov eax, dword [eax + 0x108]
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x54], str.No_huffman_table_for_DC_componentHuffman_table_at_index___not_initialized
mov dword [esp + 0x58], 0x21
and eax, 3
imul eax, eax, 0xd94
mov dword [esp], eax
lea esi, [ecx + eax]
mov al, 1
mov byte [esp + 0x50], al
lea eax, [esp + 0x50]
push eax
call fcn.0044c3bb
pop eax
mov eax, dword [esp + 0x104]
mov ecx, dword [esp]
mov dword [esp + 0x54], 0x5a44a5
mov dword [esp + 0x58], 0x2a
cmp word [eax + ecx + 0x990], 2
mov eax, 0
lea ecx, [esp + 0x30]
cmove esi, eax
mov al, 1
mov byte [esp + 0x50], al
lea eax, [esp + 0x50]
mov edx, esi
push eax
call fcn.004589cc
pop eax
mov al, byte [esp + 0x30]
cmp al, 0xd
jne 0x458743
mov esi, dword [esp + 0x34]
mov ecx, dword [ebx + 0x70dc]
mov edx, dword [ebx + 0x70e4]
push 0x5a44d0
push edi
call fcn.00452d2d
pop ecx
pop edx
cmp byte [ebx + 0x7151], 0
je 0x4572ff
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x50]
push dword [esp + 0x94]
push dword [esp + 0x104]
call fcn.00459300
pop eax
pop ecx
jmp 0x457323
mov edi, dword [ebp + 8]
lea ecx, [edx + 0x992]
test ax, ax
mov eax, 0
mov edx, 0x5a4814
cmove ecx, eax
mov dword [esp + 0x74], ecx
movzx esi, byte [edi + 0x1a]
call fcn.0042d192
movzx eax, byte [edi + 0x1b]
mov ecx, ebx
and esi, 0xf
mov edx, dword [edi + 0x14]
mov bl, byte [edi + 0x18]
mov dword [esp + 0x24], esi
mov esi, dword [ecx + 0x70f8]
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x40], eax
mov eax, dword [edi]
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x4c], eax
mov al, byte [edi + 0x1d]
mov byte [esp + 0xc], al
mov eax, dword [edi + 8]
mov dword [esp + 0x80], eax
cmp bl, 0x1f
mov dword [esp + 0x18], ebx
ja 0x455490
cmp byte [esp + 0xc], 0xc
mov ebx, dword [esp + 4]
jne 0x455490
mov eax, esi
mov dword [esp + 0x14], ecx
mov ecx, 0xffffffff
add eax, 4
mov edx, eax
cmovb edx, ecx
mov ecx, dword [ebx + 0x70f4]
cmp edx, ecx
ja 0x4554f8
xor edx, edx
cmp esi, 0xfffffffb
ja 0x45549c
cmp ecx, eax
jb 0x45549c
mov edx, dword [ebx + 0x70f0]
mov edx, dword [edx + esi]
mov dword [ebx + 0x70f8], eax
bswap edx
jmp 0x45549e
mov edx, dword [esp + 0x28]
mov dword [esp], esi
jmp 0x455b63
mov eax, esi
mov esi, edx
mov ebx, 0x7f7f7f7f
not esi
mov edi, esi
and edi, ebx
add edi, ebx
or edi, esi
not edi
test edi, 0x80808080
jne 0x4554e7
mov ebx, dword [esp + 0x18]
mov edi, dword [ebp + 8]
mov cl, 0x20
mov dword [esp], eax
mov esi, edx
sub cl, bl
add bl, 0x20
mov byte [edi + 0x18], bl
mov eax, ebx
mov eax, dword [esp + 0x44]
mov dword [edi], edx
mov edx, dword [esp + 0x28]
mov byte [esp + 0x14], bl
mov dword [edi + 4], eax
jmp 0x455b2a
mov ebx, dword [esp + 4]
sub eax, 4
mov edx, 0
cmovb eax, edx
mov esi, eax
mov eax, dword [ebx + 0x70f0]
mov ebx, 0x62c767
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x20], ecx
mov dword [esp + 0xc], eax
lea edx, [eax + esi]
xor eax, eax
cmp ecx, esi
mov dword [esp + 0x4c], edi
seta al
cmovbe edx, ebx
mov ebx, dword [esp + 0x44]
add eax, esi
mov esi, dword [esp + 0x48]
movzx edx, byte [edx]
cmp eax, ecx
mov ecx, dword [esp + 0x18]
sbb esi, 0xffffffff
shld edi, ebx, 8
shl ebx, 8
add cl, 8
or ebx, edx
cmp edx, 0xff
mov edx, dword [esp + 4]
mov dword [esp + 0x48], esi
mov byte [esp + 0xac], cl
mov dword [esp + 0x84], ebx
mov dword [edx + 0x70f8], eax
mov edx, dword [ebp + 8]
mov dword [edx + 0x14], esi
mov esi, edi
mov edi, dword [esp + 0xc]
mov dword [edx], ebx
mov dword [edx + 4], esi
mov byte [edx + 0x18], cl
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x78], esi
jne 0x4556f9
lea edx, [edi + eax]
mov edi, ecx
xor ebx, ebx
cmp ecx, eax
mov edi, 0x62c767
mov ecx, dword [esp + 4]
seta bl
cmovbe edx, edi
add ebx, eax
movzx eax, byte [edx]
and dword [esp + 0xb4], 0
mov dword [ecx + 0x70f8], ebx
test eax, eax
mov dword [esp + 0xb0], eax
je 0x4556ef
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
cmp al, 0xff
jne 0x4555fe
xor eax, eax
cmp ecx, ebx
lea edx, [edi + ebx]
mov esi, 0x62c767
mov ecx, dword [esp + 4]
seta al
cmovbe edx, esi
add ebx, eax
movzx eax, byte [edx]
and dword [esp + 0xb4], 0
mov dword [ecx + 0x70f8], ebx
mov dword [esp + 0xb0], eax
jmp 0x4555c4
movzx eax, al
test eax, eax
je 0x4556f7
mov ecx, dword [esp + 0x4c]
mov edi, dword [ebp + 8]
mov edx, dword [esp + 0x44]
and ecx, 0xffffff
mov dword [edi], edx
mov esi, ecx
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x18]
test cl, cl
mov byte [edi + 0x18], cl
je 0x455659
neg cl
mov edi, esi
shld esi, edx, cl
shl edx, cl
test cl, 0x20
mov ecx, 0
cmovne esi, edx
cmovne edx, ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x14], esi
mov dword [esp + 0x80], edx
mov dword [ecx + 0xc], esi
mov esi, edi
mov dword [ecx + 8], edx
mov ecx, eax
mov dword [esp + 0x4c], esi
mov dword [esp], ebx
call fcn.00451d5c
cmp al, 0xc
mov byte [esp + 0xc], al
jne 0x455fa6
lea eax, [esp + 0xb0]
mov dword [esp + 0x50], 0x5a43a8
lea ecx, [esp + 0xc0]
lea edx, [esp + 0x50]
mov dword [esp + 0xc0], eax
xor eax, eax
mov dword [esp + 0xc4], fcn.00442ce0
inc eax
mov dword [esp + 0x54], eax
and dword [esp + 0x60], 0
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x5c], eax
call fcn.0044d6b4
mov cl, byte [esp + 0x32]
mov al, byte [esp + 0x31]
mov byte [esp + 0xb], cl
lea ecx, [esp + 0x34]
movsd xmm0, qword [ecx - 1]
movsd xmm1, qword [ecx + 4]
xor ecx, ecx
movsd qword [esp + 0xe8], xmm0
movsd qword [esp + 0xed], xmm1
jmp 0x455fb3
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0xc]
mov eax, ebx
lea esi, [edi + eax]
xor edx, edx
cmp ecx, eax
mov edi, 0x62c767
cmovbe esi, edi
seta dl
mov edi, dword [esp + 0x84]
movzx ebx, byte [esi]
mov esi, dword [esp + 0x78]
add edx, eax
mov eax, dword [esp + 0x18]
cmp edx, ecx
sbb dword [esp + 0x48], 0xffffffff
shld esi, edi, 8
shl edi, 8
mov dword [esp], ebx
or edi, ebx
mov bh, al
mov eax, dword [esp + 4]
mov dword [esp + 0x7c], esi
add bh, 0x10
cmp dword [esp], 0xff
mov dword [esp], edx
mov dword [esp + 0x44], edi
mov byte [esp + 0x8c], bh
mov dword [eax + 0x70f8], edx
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x48]
mov dword [eax + 0x14], edx
mov dword [eax + 4], esi
mov dword [eax], edi
mov byte [eax + 0x18], bh
je 0x45586c
mov edx, dword [esp + 0xc]
mov esi, dword [esp]
mov ebx, 0x62c767
mov edi, dword [esp + 0x44]
lea eax, [edx + esi]
xor edx, edx
cmp ecx, esi
seta dl
cmovbe eax, ebx
mov ebx, dword [esp + 0x7c]
add edx, esi
mov esi, dword [esp + 0x48]
movzx eax, byte [eax]
cmp edx, ecx
mov ecx, dword [esp + 0x18]
sbb esi, 0xffffffff
shld ebx, edi, 8
shl edi, 8
add cl, 0x18
or edi, eax
cmp eax, 0xff
mov eax, dword [esp + 4]
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], ebx
mov byte [esp + 0xac], cl
mov dword [esp + 0x78], edi
mov dword [eax + 0x70f8], edx
mov eax, dword [ebp + 8]
mov dword [eax + 0x14], esi
mov dword [eax + 4], ebx
mov dword [eax], edi
mov byte [eax + 0x18], cl
jne 0x4559f3
mov eax, dword [esp + 0xc]
xor ecx, ecx
cmp dword [esp + 0x20], edx
mov esi, 0x62c767
mov ebx, dword [esp + 4]
lea eax, [eax + edx]
seta cl
cmovbe eax, esi
add ecx, edx
movzx eax, byte [eax]
and dword [esp + 0xb4], 0
mov dword [esp], ecx
mov dword [ebx + 0x70f8], ecx
test eax, eax
mov dword [esp + 0xb0], eax
je 0x4559f0
mov ecx, ebx
cmp al, 0xff
jne 0x4559e5
mov edi, dword [esp]
mov eax, dword [esp + 0xc]
mov esi, 0x62c767
lea edx, [eax + edi]
xor eax, eax
cmp dword [esp + 0x20], edi
seta al
cmovbe edx, esi
add edi, eax
movzx eax, byte [edx]
and dword [esp + 0xb4], 0
mov dword [esp], edi
mov dword [ecx + 0x70f8], edi
mov dword [esp + 0xb0], eax
jmp 0x45582a
mov edx, dword [esp]
mov edi, dword [esp + 0xc]
mov esi, ecx
xor ecx, ecx
mov ebx, 0x62c767
cmp esi, edx
lea eax, [edi + edx]
cmovbe eax, ebx
mov ebx, dword [esp + 4]
seta cl
movzx eax, byte [eax]
and dword [esp + 0xb4], 0
add ecx, edx
mov dword [esp], ecx
mov dword [ebx + 0x70f8], ecx
test eax, eax
mov dword [esp + 0xb0], eax
je 0x455dd1
mov ecx, dword [esp + 0x20]
cmp al, 0xff
jne 0x4558f0
mov edi, dword [esp]
mov eax, dword [esp + 0xc]
mov esi, 0x62c767
lea edx, [eax + edi]
xor eax, eax
cmp ecx, edi
seta al
cmovbe edx, esi
add edi, eax
movzx eax, byte [edx]
and dword [esp + 0xb4], 0
mov dword [esp], edi
mov dword [ebx + 0x70f8], edi
mov dword [esp + 0xb0], eax
jmp 0x4558b4
movzx eax, al
test eax, eax
je 0x455772
mov ebx, dword [esp + 0x78]
mov cl, 0x38
mov edi, dword [ebp + 8]
sub cl, byte [esp + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x84]
and ebx, 0xffffff
mov edx, ebx
mov esi, eax
mov dword [edi], eax
mov dword [edi + 4], ebx
mov dword [esp + 0x78], ebx
shld edx, eax, cl
shl esi, cl
test cl, 0x20
mov cl, byte [esp + 0xac]
cmovne edx, esi
mov dword [esp + 0x14], edx
mov byte [edi + 0x18], cl
mov ecx, 0
mov dword [edi + 0xc], edx
cmovne esi, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x80], esi
mov dword [edi + 8], esi
call fcn.00451d5c
cmp al, 0xc
mov byte [esp + 0xc], al
jne 0x455fbb
lea eax, [esp + 0xb0]
mov dword [esp + 0x50], 0x5a43a8
lea ecx, [esp + 0xc0]
lea edx, [esp + 0x50]
mov dword [esp + 0xc0], eax
xor eax, eax
mov dword [esp + 0xc4], fcn.00442ce0
inc eax
mov dword [esp + 0x54], eax
and dword [esp + 0x60], 0
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x5c], eax
call fcn.0044d6b4
mov cl, byte [esp + 0x32]
mov al, byte [esp + 0x31]
mov byte [esp + 0xb], cl
lea ecx, [esp + 0x34]
movsd xmm0, qword [ecx - 1]
movsd xmm1, qword [ecx + 4]
xor ecx, ecx
movsd qword [esp + 0xe8], xmm0
movsd qword [esp + 0xed], xmm1
jmp 0x455fc8
movzx ecx, al
test ecx, ecx
jne 0x455ddc
mov edx, dword [esp]
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
xor ebx, ebx
mov eax, 0x62c767
mov edi, dword [esp + 0x78]
cmp ecx, edx
lea esi, [esi + edx]
cmovbe esi, eax
seta bl
movzx eax, byte [esi]
mov esi, dword [esp + 0x48]
add ebx, edx
cmp ebx, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
sbb esi, 0xffffffff
add cl, 0x20
mov edx, dword [esp]
mov dword [esp + 0x48], esi
mov byte [esp + 0x14], cl
shld eax, edi, 8
shl edi, 8
or edi, edx
cmp edx, 0xff
mov edx, dword [esp + 4]
mov dword [esp + 0x80], eax
mov dword [esp + 0x44], edi
mov dword [edx + 0x70f8], ebx
mov edx, dword [ebp + 8]
mov dword [edx + 0x14], esi
mov dword [edx + 4], eax
mov dword [edx], edi
mov byte [edx + 0x18], cl
je 0x455a7f
mov edi, dword [ebp + 8]
mov al, byte [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov dword [esp], ebx
jmp 0x455b12
mov eax, dword [esp + 0xc]
xor ecx, ecx
cmp dword [esp + 0x20], ebx
lea edx, [eax + ebx]
mov eax, 0x62c767
seta cl
cmovbe edx, eax
add ecx, ebx
mov ebx, dword [esp + 4]
movzx eax, byte [edx]
and dword [esp + 0xb4], 0
mov dword [esp], ecx
mov dword [ebx + 0x70f8], ecx
test eax, eax
mov dword [esp + 0xb0], eax
je 0x455b07
mov ecx, dword [esp + 0x20]
cmp al, 0xff
jne 0x455afc
mov edi, dword [esp]
mov eax, dword [esp + 0xc]
mov esi, 0x62c767
lea edx, [eax + edi]
xor eax, eax
cmp ecx, edi
seta al
cmovbe edx, esi
add edi, eax
movzx eax, byte [edx]
and dword [esp + 0xb4], 0
mov dword [esp], edi
mov dword [ebx + 0x70f8], edi
mov dword [esp + 0xb0], eax
jmp 0x455ac0
movzx eax, al
test eax, eax
jne 0x455ec2
mov edi, dword [ebp + 8]
mov edx, dword [esp + 0x28]
mov al, byte [esp + 0x2c]
mov cl, 0x20
mov byte [esp + 0x2c], al
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x80]
sub cl, byte [esp + 0x18]
and cl, 0x3f
mov ebx, eax
mov dword [esp + 0x44], esi
mov dword [esp + 0x4c], eax
mov al, byte [esp + 0x14]
mov byte [esp + 0xc], 0xc
mov dword [esp + 0x18], eax
shld ebx, esi, cl
shl esi, cl
test cl, 0x20
mov ecx, 0
cmovne ebx, esi
cmovne esi, ecx
mov ecx, ebx
mov dword [esp + 0x80], esi
mov dword [edi + 8], esi
mov dword [edi + 0xc], ebx
mov bh, byte [esp + 0x2c]
mov eax, ecx
mov esi, ecx
mov ecx, dword [esp + 0x74]
shr eax, 0x17
mov dword [esp + 0x14], esi
movzx ecx, word [ecx + eax*2]
mov eax, dword [edx + eax*4 + 0x90]
test ecx, ecx
mov dword [esp + 0xe4], eax
je 0x455c1d
mov eax, dword [esp + 0x40]
mov edx, ecx
mov byte [esp + 0x2c], bh
shr edx, 4
and edx, 0xf
lea edi, [eax + edx]
movsx eax, cx
mov ecx, dword [esp + 0x24]
mov esi, eax
sar esi, 8
shl esi, cl
cmp edi, 0x3f
push 0x3f
pop ecx
cmovae edi, ecx
mov ebx, dword [esp + 0x94]
and al, 0xf
mov ecx, dword [edi*4 + 0x5a3ab4]
mov edi, dword [ebp + 8]
and ecx, 0x3f
mov word [ebx + ecx*2], si
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x80]
sub bl, al
lea edx, [ecx + edx + 1]
mov ecx, 0
movzx ebx, bl
cmovb ebx, ecx
mov ecx, eax
mov byte [edi + 0x18], bl
mov edi, eax
mov eax, dword [esp + 0x14]
shld eax, esi, cl
mov ecx, edi
mov edi, dword [ebp + 8]
shl esi, cl
mov ecx, eax
mov dword [esp + 0x80], esi
mov dword [edi + 0xc], ecx
mov dword [edi + 8], esi
jmp 0x455db2
mov ecx, eax
sar ecx, 9
cmp eax, 0x1400
jl 0x455c51
mov ebx, dword [esp + 0x14]
shr ebx, 0x10
cmp ecx, 0x12
mov dword [esp + 0xe4], ebx
push 0x11
pop edx
cmovge edx, ecx
cmp ecx, 0x11
jge 0x455c5c
mov esi, dword [esp + 0x28]
cmp dword [esi + ecx*4], ebx
jg 0x455c68
inc ecx
jmp 0x455c40
and eax, 0x1ff
mov byte [esp + 0x2c], bh
jmp 0x455c8e
cmp eax, 0x2400
jge 0x455c6a
jmp 0x4586a9
mov edx, ecx
cmp edx, 0x12
jae 0x458860
mov cl, 0x10
sub cl, dl
shr ebx, cl
mov ecx, dword [esp + 0x28]
add ebx, dword [ecx + edx*4 + 0x48]
movzx eax, bl
movzx eax, byte [ecx + eax + 0x890]
mov ecx, edx
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x80]
mov edx, 0
sub bl, cl
movzx ebx, bl
cmovb ebx, edx
mov edx, dword [ebp + 8]
shld edi, esi, cl
shl esi, cl
test cl, 0x20
mov ecx, 0
cmovne edi, esi
cmovne esi, ecx
mov ecx, eax
shr ecx, 4
and eax, 0xf
mov dword [esp + 0x14], edi
mov dword [esp + 0x80], esi
mov dword [esp + 0xe4], eax
mov byte [edx + 0x18], bl
mov dword [edx + 0xc], edi
mov dword [edx + 8], esi
je 0x455d9c
mov edx, dword [esp + 0x40]
xor edi, edi
mov dword [esp + 0x18], ebx
dec edi
lea esi, [ecx + edx]
lea edx, [ecx + edx + 1]
mov ecx, eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x80]
mov esi, dword [esp + 0x14]
shl edi, cl
mov ebx, edi
not ebx
shld edx, esi, cl
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x80]
shld esi, edx, cl
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x78]
mov dword [esp + 0x14], esi
sub cl, al
and ebx, edx
dec al
xor esi, esi
or edi, 1
mov dword [esp + 0x80], edx
mov dword [esp + 0x18], ecx
mov ecx, eax
dec esi
mov eax, dword [ebp + 8]
shl esi, cl
mov ecx, dword [esp + 0x24]
add esi, ebx
sar esi, 0x1f
and esi, edi
mov edi, dword [esp + 0x14]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x40]
add esi, ebx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xe4], esi
shl esi, cl
mov ecx, dword [esp + 0x94]
mov dword [eax + 0xc], edi
mov byte [eax + 0x18], bl
mov eax, dword [esp + 0x20]
and eax, 0x3f
mov eax, dword [eax*4 + 0x5a3ab4]
and eax, 0x3f
mov word [ecx + eax*2], si
mov ecx, edi
jmp 0x455db2
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
cmp ecx, 0xf
jne 0x4573ae
add edx, 0x10
mov ecx, esi
mov eax, dword [ebp + 8]
mov dword [esp + 0x40], edx
mov esi, dword [esp]
movzx eax, byte [eax + 0x1c]
cmp edx, eax
mov edx, dword [esp + 0x1c]
jbe 0x45543d
jmp 0x458514
mov ecx, dword [esp + 0x20]
mov edx, edi
jmp 0x455776
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xc], ecx
mov cl, 0x30
mov ebx, dword [esp + 0x44]
mov edi, dword [ebp + 8]
sub cl, byte [esp + 0x18]
and eax, 0xffffff
mov edx, ebx
mov dword [edi], ebx
mov esi, eax
shl edx, cl
mov dword [esp + 0x7c], eax
mov dword [edi + 4], eax
mov al, byte [esp + 0x8c]
shld esi, ebx, cl
test cl, 0x20
mov ecx, 0
cmovne esi, edx
cmovne edx, ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x80], edx
mov dword [esp + 0x14], esi
mov byte [edi + 0x18], al
mov dword [edi + 8], edx
mov dword [edi + 0xc], esi
call fcn.00451d5c
cmp al, 0xc
mov byte [esp + 0xc], al
jne 0x455fdd
lea eax, [esp + 0xb0]
mov dword [esp + 0x50], 0x5a43a8
lea ecx, [esp + 0xc0]
lea edx, [esp + 0x50]
mov dword [esp + 0xc0], eax
xor eax, eax
mov dword [esp + 0xc4], fcn.00442ce0
inc eax
mov dword [esp + 0x54], eax
and dword [esp + 0x60], 0
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x5c], eax
call fcn.0044d6b4
mov cl, byte [esp + 0x32]
mov al, byte [esp + 0x31]
mov byte [esp + 0xb], cl
lea ecx, [esp + 0x34]
movsd xmm0, qword [ecx - 1]
movsd xmm1, qword [ecx + 4]
xor ecx, ecx
movsd qword [esp + 0xe8], xmm0
movsd qword [esp + 0xed], xmm1
jmp 0x455fea
mov edx, dword [esp + 0x4c]
mov cl, 0x28
mov ebx, dword [esp + 0x78]
mov dword [esp + 0xc], eax
mov edi, dword [ebp + 8]
sub cl, byte [esp + 0x18]
and edx, 0xffffff
mov eax, ebx
mov dword [edi], ebx
mov esi, edx
shl eax, cl
mov dword [edi + 4], edx
mov dword [esp + 0x4c], edx
shld esi, ebx, cl
test cl, 0x20
mov cl, byte [esp + 0xac]
cmovne esi, eax
mov dword [esp + 0x14], esi
mov byte [edi + 0x18], cl
mov ecx, 0
mov dword [edi + 0xc], esi
cmovne eax, ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x80], eax
mov dword [edi + 8], eax
call fcn.00451d5c
cmp al, 0xc
mov byte [esp + 0xc], al
jne 0x456003
lea eax, [esp + 0xb0]
mov dword [esp + 0x50], 0x5a43a8
lea ecx, [esp + 0xc0]
lea edx, [esp + 0x50]
mov dword [esp + 0xc0], eax
xor eax, eax
mov dword [esp + 0xc4], fcn.00442ce0
inc eax
mov dword [esp + 0x54], eax
and dword [esp + 0x60], 0
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x5c], eax
call fcn.0044d6b4
mov cl, byte [esp + 0x32]
mov al, byte [esp + 0x31]
mov byte [esp + 0xb], cl
lea ecx, [esp + 0x34]
movsd xmm0, qword [ecx - 1]
movsd xmm1, qword [ecx + 4]
xor ecx, ecx
movsd qword [esp + 0xe8], xmm0
movsd qword [esp + 0xed], xmm1
jmp 0x456010
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x1d], al
mov byte [ecx + 0x1e], dl
mov cl, 0xd
xor eax, eax
mov edx, dword [esp + 0x18]
mov ebx, edx
jmp 0x455ff9
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x1d], al
mov byte [ecx + 0x1e], dl
mov cl, 0xd
xor eax, eax
mov edx, dword [esp + 0x84]
mov esi, dword [esp + 0x78]
mov dword [esp + 0x44], edx
mov dword [esp + 0x4c], esi
jmp 0x456018
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x1d], al
mov byte [ecx + 0x1e], dl
mov cl, 0xd
xor eax, eax
mov edx, dword [esp + 0x7c]
mov bl, byte [esp + 0x8c]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x28]
mov bh, byte [esp + 0x2c]
jmp 0x456027
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x1d], al
mov byte [ecx + 0x1e], dl
mov cl, 0xd
xor eax, eax
mov edx, dword [esp + 0x78]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x28]
mov bh, byte [esp + 0x2c]
mov bl, byte [esp + 0xac]
cmp cl, 0xd
jne 0x458664
mov ecx, dword [esp + 0x14]
mov eax, ebx
mov dword [esp + 0x18], eax
jmp 0x455b67
mov eax, 0xffff0000
neg edx
mov edi, dword [ebp + 8]
shl eax, cl
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x1c]
sar eax, 0x10
mov dword [esp + 0x130], eax
mov eax, 0x10000
shl eax, cl
sar eax, 0x10
mov dword [esp + 0x12c], eax
mov al, byte [edi + 0x18]
mov byte [esp + 0x18], bl
cmp al, 0x1f
mov byte [esp + 0x14], al
ja 0x456824
cmp byte [edi + 0x1d], 0xc
jne 0x456824
mov eax, dword [esp + 4]
mov esi, 0xffffffff
mov dword [esp + 0x1c], edx
mov edi, dword [eax + 0x70f8]
mov ebx, dword [eax + 0x70f4]
mov eax, edi
mov dword [esp + 0xc], ebx
add eax, 4
mov ecx, eax
cmovb ecx, esi
cmp ecx, ebx
ja 0x456121
xor ebx, ebx
cmp edi, 0xfffffffb
ja 0x4560da
cmp dword [esp + 0xc], eax
jb 0x4560da
mov esi, dword [esp + 4]
mov ecx, dword [esi + 0x70f0]
mov ebx, dword [ecx + edi]
mov dword [esi + 0x70f8], eax
bswap ebx
jmp 0x4560dc
mov eax, edi
mov ecx, ebx
mov edx, 0x7f7f7f7f
not ecx
mov esi, ecx
and esi, edx
add esi, edx
or esi, ecx
not esi
test esi, 0x80808080
jne 0x456114
mov cl, byte [esp + 0x14]
mov edx, dword [ebp + 8]
mov al, 0x20
sub al, cl
add cl, 0x20
mov byte [edx + 0x18], cl
mov edi, dword [edx]
mov dword [edx], ebx
mov dword [edx + 4], edi
jmp 0x456506
sub eax, 4
mov ecx, 0
cmovb eax, ecx
mov edi, eax
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0xc]
xor ecx, ecx
mov esi, 0x62c767
mov eax, dword [eax + 0x70f0]
cmp ebx, edi
seta cl
mov dword [esp], eax
lea eax, [eax + edi]
cmovbe eax, esi
add ecx, edi
mov edi, dword [ebp + 8]
cmp ecx, ebx
movzx eax, byte [eax]
mov ebx, dword [edi + 0x14]
mov edx, dword [edi]
mov esi, dword [edi + 4]
mov edi, eax
sbb ebx, 0xffffffff
mov dword [esp + 0x74], esi
shld esi, edx, 8
mov dword [esp + 0x44], edx
shl edx, 8
or edx, eax
mov ah, byte [esp + 0x14]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x40], esi
mov dword [esp + 0x24], edx
add ah, 8
cmp edi, 0xff
mov edi, dword [esp + 4]
mov byte [esp + 0x78], ah
mov dword [edi + 0x70f8], ecx
mov edi, dword [ebp + 8]
mov dword [edi + 0x14], ebx
mov ebx, dword [esp]
mov dword [edi + 4], esi
mov dword [edi], edx
mov byte [edi + 0x18], ah
jne 0x456222
xor eax, eax
cmp dword [esp + 0xc], ecx
lea edi, [ebx + ecx]
mov esi, 0x62c767
cmovbe edi, esi
seta al
mov esi, dword [esp + 4]
add eax, ecx
movzx ecx, byte [edi]
and dword [esp + 0x6c], 0
mov dword [esi + 0x70f8], eax
test ecx, ecx
mov dword [esp + 0x68], ecx
je 0x45621d
mov ebx, dword [esp]
cmp cl, 0xff
jne 0x45620c
xor ecx, ecx
cmp dword [esp + 0xc], eax
lea edi, [ebx + eax]
mov edx, 0x62c767
mov esi, dword [esp + 4]
seta cl
cmovbe edi, edx
add eax, ecx
movzx ecx, byte [edi]
and dword [esp + 0x6c], 0
mov dword [esi + 0x70f8], eax
mov dword [esp + 0x68], ecx
jmp 0x4561d6
movzx ecx, cl
test ecx, ecx
jne 0x45652b
mov edx, dword [esp + 0x24]
jmp 0x456220
mov ebx, dword [esp]
mov ecx, eax
mov esi, dword [esp + 0xc]
xor eax, eax
lea edi, [ebx + ecx]
mov ebx, 0x62c767
cmp esi, ecx
seta al
cmovbe edi, ebx
mov ebx, edx
add eax, ecx
mov ecx, dword [esp + 0x20]
movzx edi, byte [edi]
cmp eax, esi
mov esi, dword [esp + 0x40]
sbb ecx, 0xffffffff
shl ebx, 8
shld esi, edx, 8
mov dh, byte [esp + 0x14]
or ebx, edi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x44], esi
mov dword [esp + 0x74], ebx
add dh, 0x10
cmp edi, 0xff
mov edi, dword [esp + 4]
mov byte [esp + 0xac], dh
mov dword [edi + 0x70f8], eax
mov edi, dword [ebp + 8]
mov dword [edi + 0x14], ecx
mov dword [edi + 4], esi
mov dword [edi], ebx
mov byte [edi + 0x18], dh
jne 0x45630b
mov ecx, dword [esp]
mov edx, 0x62c767
lea edi, [ecx + eax]
xor ecx, ecx
cmp dword [esp + 0xc], eax
cmovbe edi, edx
seta cl
mov edx, dword [esp + 4]
add ecx, eax
movzx eax, byte [edi]
and dword [esp + 0x6c], 0
mov dword [edx + 0x70f8], ecx
test eax, eax
mov dword [esp + 0x68], eax
je 0x456306
mov ebx, dword [esp + 0x40]
mov edx, dword [esp]
cmp al, 0xff
jne 0x4562fb
xor eax, eax
cmp dword [esp + 0xc], ecx
lea edi, [edx + ecx]
mov edx, 0x62c767
mov esi, dword [esp + 4]
seta al
cmovbe edi, edx
add ecx, eax
movzx eax, byte [edi]
and dword [esp + 0x6c], 0
mov dword [esi + 0x70f8], ecx
mov dword [esp + 0x68], eax
jmp 0x4562c6
movzx eax, al
test eax, eax
jne 0x45659c
mov edi, dword [ebp + 8]
mov eax, ecx
mov ecx, dword [esp]
mov edx, dword [esp + 0xc]
mov ebx, 0x62c767
lea esi, [ecx + eax]
xor ecx, ecx
cmp edx, eax
cmovbe esi, ebx
seta cl
mov bl, byte [esp + 0x14]
movzx esi, byte [esi]
add ecx, eax
cmp ecx, edx
mov edx, dword [esp + 0x74]
sbb dword [esp + 0x20], 0xffffffff
add bl, 0x18
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x44]
mov byte [esp + 0x78], bl
mov eax, dword [esp + 0x24]
shld esi, edx, 8
shl edx, 8
or edx, eax
cmp eax, 0xff
mov eax, dword [esp + 4]
mov dword [esp + 0x24], esi
mov dword [esp + 0x40], edx
mov dword [eax + 0x70f8], ecx
mov eax, dword [esp + 0x20]
mov dword [edi + 0x14], eax
mov dword [edi + 4], esi
mov dword [edi], edx
mov byte [edi + 0x18], bl
je 0x456469
mov edi, dword [esp + 0xc]
mov ebx, dword [esp]
mov edx, ecx
lea eax, [ebx + ecx]
xor ecx, ecx
mov esi, 0x62c767
mov ebx, dword [esp + 0x40]
cmp edi, edx
seta cl
cmovbe eax, esi
add ecx, edx
mov edx, dword [esp + 0x20]
movzx esi, byte [eax]
mov al, byte [esp + 0x14]
cmp ecx, edi
mov edi, dword [esp + 0x24]
sbb edx, 0xffffffff
add al, 0x20
shld edi, ebx, 8
shl ebx, 8
or ebx, esi
cmp esi, 0xff
mov esi, dword [ebp + 8]
mov dword [esi + 0x14], edx
mov dl, byte [esp + 0x14]
mov dword [esi + 4], edi
mov dword [esi], ebx
mov byte [esi + 0x18], al
mov esi, dword [esp + 4]
mov dword [esi + 0x70f8], ecx
jne 0x4564fd
mov eax, dword [esp]
mov esi, 0x62c767
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x24]
lea edx, [eax + ecx]
xor eax, eax
cmp dword [esp + 0xc], ecx
cmovbe edx, esi
seta al
mov esi, dword [esp + 4]
add eax, ecx
movzx ecx, byte [edx]
mov edx, dword [esp + 0x40]
and dword [esp + 0x6c], 0
mov dword [esi + 0x70f8], eax
test ecx, ecx
mov dword [esp + 0x68], ecx
je 0x4564f5
cmp cl, 0xff
jne 0x4564ea
mov ecx, dword [esp]
mov edx, 0x62c767
lea esi, [ecx + eax]
xor ecx, ecx
cmp dword [esp + 0xc], eax
cmovbe esi, edx
seta cl
mov edx, dword [esp + 0x40]
add eax, ecx
movzx ecx, byte [esi]
mov esi, dword [esp + 4]
and dword [esp + 0x6c], 0
mov dword [esi + 0x70f8], eax
mov dword [esp + 0x68], ecx
jmp 0x45642b
mov ebx, dword [esp]
mov edi, dword [esp + 0xc]
mov edx, ecx
mov esi, 0x62c767
lea eax, [ebx + ecx]
xor ecx, ecx
cmp edi, edx
cmovbe eax, esi
seta cl
movzx eax, byte [eax]
add ecx, edx
mov edx, dword [esp + 4]
and dword [esp + 0x6c], 0
test eax, eax
mov dword [edx + 0x70f8], ecx
mov dword [esp + 0x68], eax
jne 0x4564d2
jmp 0x456387
mov eax, dword [esp]
mov edx, dword [esp + 4]
mov ebx, dword [esp]
lea edi, [eax + ecx]
xor eax, eax
cmp dword [esp + 0xc], ecx
seta al
cmovbe edi, esi
add ecx, eax
movzx eax, byte [edi]
and dword [esp + 0x6c], 0
mov dword [edx + 0x70f8], ecx
mov dword [esp + 0x68], eax
cmp al, 0xff
je 0x4564a5
movzx eax, al
test eax, eax
jne 0x456614
mov edi, dword [esp + 0xc]
jmp 0x456387
movzx esi, cl
test esi, esi
jne 0x4566d8
mov dl, byte [esp + 0x14]
mov edi, dword [esp + 0x20]
mov al, 0x20
sub al, dl
mov edx, dword [ebp + 8]
and al, 0x3f
mov ecx, eax
shld edi, ebx, cl
shl ebx, cl
test al, 0x20
mov eax, 0
cmovne edi, ebx
cmovne ebx, eax
mov dword [edx + 0xc], edi
mov dword [edx + 8], ebx
mov edi, edx
mov edx, dword [esp + 0x1c]
jmp 0x456824
mov esi, dword [esp + 0x74]
mov ebx, ecx
mov cl, byte [esp + 0x14]
mov edi, dword [ebp + 8]
mov edx, dword [esp + 0x44]
and esi, 0xffffff
test cl, cl
mov dword [edi], edx
mov dword [edi + 4], esi
mov byte [edi + 0x18], cl
je 0x456569
neg cl
mov eax, 0
shld esi, edx, cl
shl edx, cl
test cl, 0x20
cmovne esi, edx
cmovne edx, eax
mov dword [edi + 0xc], esi
mov dword [edi + 8], edx
mov ecx, ebx
call fcn.00451d5c
mov bh, byte [esp + 0x93]
mov esi, dword [esp + 0xdc]
mov bl, byte [esp + 0x92]
cmp al, 0xc
je 0x45666f
mov byte [edi + 0x1d], al
mov byte [edi + 0x1e], dl
mov edx, dword [esp + 0x1c]
jmp 0x4567d4
mov dl, 0x38
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x24]
mov dword [esp], eax
mov al, byte [esp + 0x78]
and ebx, 0xffffff
sub dl, byte [esp + 0x14]
mov dword [edi], esi
mov dword [edi + 4], ebx
mov byte [edi + 0x18], al
mov eax, 0
mov ecx, edx
shld ebx, esi, cl
shl esi, cl
mov ecx, dword [esp]
test dl, 0x20
cmovne ebx, esi
cmovne esi, eax
mov dword [edi + 8], esi
mov dword [edi + 0xc], ebx
call fcn.00451d5c
cmp al, 0xc
je 0x45666f
mov byte [edi + 0x1d], al
mov byte [edi + 0x1e], dl
mov bh, byte [esp + 0x93]
mov esi, dword [esp + 0xdc]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0xd4]
mov bl, byte [esp + 0x92]
jmp 0x4567a9
mov dl, 0x30
mov esi, dword [esp + 0x44]
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 0x74]
mov dword [esp], eax
mov al, byte [esp + 0xac]
sub dl, byte [esp + 0x14]
and esi, 0xffffff
mov dword [edi], ebx
mov ecx, edx
mov dword [edi + 4], esi
mov byte [edi + 0x18], al
mov eax, 0
shld esi, ebx, cl
shl ebx, cl
mov ecx, dword [esp]
test dl, 0x20
cmovne esi, ebx
cmovne ebx, eax
mov dword [edi + 8], ebx
mov dword [edi + 0xc], esi
call fcn.00451d5c
mov esi, dword [esp + 0xdc]
cmp al, 0xc
jne 0x45678a
lea eax, [esp + 0x68]
mov dword [esp + 0x50], 0x5a43a8
lea ecx, [esp + 0x98]
lea edx, [esp + 0x50]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x9c], fcn.00442ce0
inc eax
mov dword [esp + 0x54], eax
and dword [esp + 0x60], 0
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x5c], eax
call fcn.0044d6b4
mov al, byte [esp + 0x31]
mov bl, byte [esp + 0x32]
mov bh, byte [esp + 0x33]
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
xor ecx, ecx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x3c]
jmp 0x4567e5
mov cl, 0x28
and edi, 0xffffff
mov al, byte [esp + 0x78]
mov ebx, edi
mov edi, dword [ebp + 8]
sub cl, byte [esp + 0x14]
mov dword [edi + 4], ebx
mov dword [edi], edx
mov byte [edi + 0x18], al
shld ebx, edx, cl
shl edx, cl
test cl, 0x20
mov eax, 0
mov ecx, esi
cmovne ebx, edx
cmovne edx, eax
mov dword [edi + 8], edx
mov dword [edi + 0xc], ebx
call fcn.00451d5c
cmp al, 0xc
jne 0x4567b5
lea eax, [esp + 0x68]
mov dword [esp + 0x50], 0x5a43a8
lea ecx, [esp + 0x98]
lea edx, [esp + 0x50]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x9c], fcn.00442ce0
inc eax
mov dword [esp + 0x54], eax
and dword [esp + 0x60], 0
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x5c], eax
call fcn.0044d6b4
mov al, byte [esp + 0x31]
mov bl, byte [esp + 0x32]
mov bh, byte [esp + 0x33]
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
xor ecx, ecx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xd4], eax
jmp 0x4567de
mov byte [edi + 0x1d], al
mov byte [edi + 0x1e], dl
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0xd4]
mov bl, byte [esp + 0x92]
mov bh, byte [esp + 0x93]
mov cl, 0xd
mov dword [esp + 0x24], 0
jmp 0x4567e5
mov byte [edi + 0x1d], al
mov byte [edi + 0x1e], dl
mov bh, byte [esp + 0x93]
mov esi, dword [esp + 0xdc]
mov edx, dword [esp + 0x1c]
mov bl, byte [esp + 0x92]
mov cl, 0xd
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0xd4]
cmp cl, 0xd
mov dword [esp + 0xd4], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x7c], edx
mov dword [esp + 0xdc], esi
mov dword [esp + 0x84], esi
mov byte [esp + 0x93], bh
mov byte [esp + 0xb], bh
mov byte [esp + 0x92], bl
mov byte [esp + 0x13], bl
jne 0x4587da
mov dword [esp + 0x1c], edx
mov edx, dword [edi + 0xc]
mov ecx, dword [esp + 0x28]
mov esi, dword [edi + 8]
mov eax, edx
mov dword [esp], edx
shr eax, 0x17
mov edi, dword [ecx + eax*4 + 0x90]
mov ecx, edi
sar ecx, 9
cmp edi, 0x1400
jl 0x456874
mov ebx, edx
shr ebx, 0x10
cmp ecx, 0x12
mov dword [esp + 0xc0], ebx
push 0x11
pop eax
cmovge eax, ecx
cmp ecx, 0x11
jge 0x45687c
mov edx, dword [esp + 0x28]
cmp dword [edx + ecx*4], ebx
jg 0x456889
inc ecx
jmp 0x456863
and edi, 0x1ff
jmp 0x4568af
cmp edi, 0x2400
jge 0x45688b
jmp 0x458776
mov eax, ecx
cmp eax, 0x12
jae 0x45886e
mov edx, dword [esp + 0x28]
mov cl, 0x10
sub cl, al
shr ebx, cl
add ebx, dword [edx + eax*4 + 0x48]
movzx ecx, bl
movzx edi, byte [edx + ecx + 0x890]
mov ecx, eax
mov ebx, dword [ebp + 8]
mov edx, 0
mov al, byte [ebx + 0x18]
sub al, cl
movzx eax, al
cmovb eax, edx
mov edx, dword [esp]
mov byte [ebx + 0x18], al
shld edx, esi, cl
shl esi, cl
test cl, 0x20
mov ecx, 0
cmovne edx, esi
cmovne esi, ecx
mov dword [esp], edx
mov dword [ebx + 0xc], edx
mov edx, edi
mov dword [ebx + 8], esi
shr edx, 4
and edi, 0xf
mov dword [esp + 0xc0], edi
je 0x45692e
cmp edi, 1
jne 0x458637
sub al, 1
mov edi, dword [ebp + 8]
mov bl, byte [esp + 0x18]
movzx eax, al
cmovb eax, ecx
mov ecx, dword [esp]
mov byte [edi + 0x18], al
mov eax, ecx
shld eax, esi, 1
add esi, esi
test ecx, ecx
mov dword [edi + 8], esi
mov dword [edi + 0xc], eax
js 0x45694a
mov eax, dword [esp + 0x130]
jmp 0x456951
mov edi, dword [ebp + 8]
mov bl, byte [esp + 0x18]
cmp edx, 0xf
mov dword [esp + 0xac], 0
je 0x45695f
jmp 0x457361
mov eax, dword [esp + 0x12c]
mov dword [esp + 0xc0], eax
mov dword [esp + 0xac], eax
mov al, byte [edi + 0x1c]
cmp bl, al
mov byte [esp + 0xc], al
jbe 0x456973
mov bh, byte [esp + 0x2c]
jmp 0x4572bd
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x110]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x10c]
mov bh, byte [esp + 0x48]
mov esi, dword [edi + 4]
mov eax, dword [eax + 0x70f8]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x7c], edx
mov byte [esp + 0x13], bh
mov edx, dword [edi]
mov bh, byte [esp + 0x2c]
mov dword [esp], eax
mov al, byte [esp + 0xe0]
mov dword [esp + 0x8c], ecx
mov ecx, dword [edi + 0x14]
mov dword [esp + 0x48], edx
mov byte [esp + 0xb], al
mov dword [esp + 0x40], ecx
mov ecx, ebx
mov eax, dword [esp + 0x94]
and cl, 0x3f
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x5a3ab4]
and ecx, 0x3f
movzx edx, word [eax + ecx*2]
test dx, dx
je 0x456a9f
mov eax, dword [ebp + 8]
mov byte [esp + 0x18], bl
mov dword [esp + 0x14], esi
mov bl, byte [eax + 0x18]
mov edi, dword [eax + 8]
mov esi, dword [eax + 0xc]
mov eax, 0
mov byte [esp + 0x20], bl
sub bl, 1
movzx ebx, bl
cmovb ebx, eax
mov eax, dword [ebp + 8]
mov byte [eax + 0x18], bl
mov ebx, esi
shld ebx, edi, 1
add edi, edi
test esi, esi
mov dword [eax + 8], edi
mov edi, dword [ebp + 8]
mov dword [edi + 0xc], ebx
jns 0x456a63
mov esi, edx
and esi, dword [esp + 0x80]
test si, si
jne 0x456a63
mov esi, dword [esp + 0x80]
test dx, dx
mov eax, dword [esp + 0x94]
cmovs esi, dword [esp + 0x4c]
add esi, edx
mov word [eax + ecx*2], si
cmp byte [esp + 0x20], 1
mov bh, byte [esp + 0x2c]
ja 0x456ab9
cmp byte [edi + 0x1d], 0xc
mov bl, byte [esp + 0x18]
jne 0x456aca
mov esi, dword [esp]
mov eax, 0xffffffff
mov ecx, esi
add ecx, 4
mov edx, ecx
cmovb edx, eax
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x70f4]
cmp edx, eax
jbe 0x456ad7
mov ebx, esi
jmp 0x456b4a
mov eax, dword [esp + 0x44]
test eax, eax
jle 0x457283
mov edx, dword [esp + 0x1c]
dec eax
mov dword [esp + 0x44], eax
jmp 0x457236
mov edx, dword [esp + 0x1c]
mov bl, byte [esp + 0x18]
mov esi, dword [esp + 0x14]
jmp 0x457236
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
jmp 0x45722f
xor edx, edx
cmp esi, 0xfffffffb
mov edi, esi
ja 0x456afb
cmp eax, ecx
jb 0x456afb
mov esi, dword [esp + 4]
mov edx, dword [esi + 0x70f0]
mov edx, dword [edx + edi]
mov dword [esi + 0x70f8], ecx
bswap edx
jmp 0x456afd
mov ecx, edi
mov esi, edx
mov ebx, 0x7f7f7f7f
not esi
mov edi, esi
and edi, ebx
add edi, ebx
or edi, esi
not edi
test edi, 0x80808080
jne 0x456b3d
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x48]
mov bh, byte [esp + 0x2c]
mov bl, byte [esp + 0x18]
mov byte [edi + 0x18], 0x20
mov esi, eax
mov dword [edi + 4], eax
mov dword [edi], edx
mov eax, edx
mov edx, dword [esp + 0x1c]
jmp 0x457074
sub ecx, 4
mov edx, 0
cmovb ecx, edx
mov ebx, ecx
mov ecx, dword [esp + 4]
mov esi, 0x62c767
mov dword [esp + 0xc], eax
mov ecx, dword [ecx + 0x70f0]
mov dword [esp + 0x20], ecx
lea edx, [ecx + ebx]
xor ecx, ecx
cmp eax, ebx
seta cl
cmovbe edx, esi
mov esi, dword [esp + 0x14]
add ecx, ebx
mov ebx, dword [esp + 0x40]
movzx edi, byte [edx]
mov edx, dword [ebp + 8]
cmp ecx, eax
mov eax, dword [esp + 0x48]
sbb ebx, 0xffffffff
mov dword [esp + 0xe0], edi
shld esi, eax, 8
shl eax, 8
mov dword [edx + 0x14], ebx
mov dword [esp + 0x40], ebx
or eax, edi
cmp edi, 0xff
mov edi, dword [esp + 4]
mov dword [edx + 4], esi
mov dword [esp + 0x24], esi
mov dword [edx], eax
mov dword [esp + 0x74], eax
mov byte [edx + 0x18], 8
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
mov dword [edi + 0x70f8], ecx
jne 0x456c57
xor ebx, ebx
cmp eax, ecx
lea edx, [edx + ecx]
mov esi, 0x62c767
seta bl
cmovbe edx, esi
add ebx, ecx
movzx ecx, byte [edx]
and dword [esp + 0x6c], 0
mov dword [edi + 0x70f8], ebx
test ecx, ecx
mov dword [esp + 0x68], ecx
je 0x456c55
mov dword [esp], ebx
mov bl, byte [esp + 0x18]
mov ah, byte [esp + 0x2c]
mov edi, dword [esp + 0x20]
cmp cl, 0xff
jne 0x456c43
mov al, bl
mov ebx, dword [esp]
xor ecx, ecx
mov esi, 0x62c767
cmp dword [esp + 0xc], ebx
lea edx, [edi + ebx]
cmovbe edx, esi
seta cl
mov esi, dword [esp + 4]
add ebx, ecx
movzx ecx, byte [edx]
and dword [esp + 0x6c], 0
mov dword [esp], ebx
mov dword [esi + 0x70f8], ebx
mov ebx, eax
mov dword [esp + 0x68], ecx
jmp 0x456c06
movzx ecx, cl
test ecx, ecx
jne 0x456e67
mov ebx, dword [esp]
mov eax, dword [esp + 0xc]
mov ecx, ebx
mov edx, dword [esp + 0x20]
xor ebx, ebx
cmp eax, ecx
mov esi, 0x62c767
seta bl
lea edx, [edx + ecx]
cmovbe edx, esi
add ebx, ecx
mov esi, dword [esp + 0x40]
mov ecx, dword [ebp + 8]
cmp ebx, eax
movzx edi, byte [edx]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x74]
sbb esi, 0xffffffff
shld edx, eax, 8
shl eax, 8
mov dword [ecx + 0x14], esi
mov dword [esp + 0x40], esi
or eax, edi
cmp edi, 0xff
mov edi, dword [esp + 4]
mov dword [esp + 0x78], edx
mov dword [ecx + 4], edx
mov dword [ecx], eax
mov dword [esp + 0x48], eax
mov byte [ecx + 0x18], 0x10
mov dword [edi + 0x70f8], ebx
je 0x456d32
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x78]
xor edx, edx
cmp edi, ebx
mov esi, 0x62c767
seta dl
lea ecx, [ecx + ebx]
cmovbe ecx, esi
add edx, ebx
mov ebx, eax
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x48]
movzx ecx, byte [ecx]
cmp edx, edi
sbb esi, 0xffffffff
shld ebx, eax, 8
shl eax, 8
or eax, ecx
cmp ecx, 0xff
mov ecx, dword [esp + 4]
mov dword [esp + 0x40], esi
mov dword [esp + 0x14], ebx
mov dword [ecx + 0x70f8], edx
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x14], esi
mov esi, eax
mov eax, ebx
mov dword [ecx + 4], ebx
mov dword [ecx], esi
mov byte [ecx + 0x18], 0x18
mov dword [esp + 0x74], esi
je 0x456dba
mov edi, dword [esp + 0x20]
jmp 0x456e8f
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov edx, 0x62c767
lea esi, [eax + ebx]
mov eax, dword [esp + 0xc]
cmp eax, ebx
seta cl
cmovbe esi, edx
add ecx, ebx
mov ebx, ecx
movzx ecx, byte [esi]
and dword [esp + 0x6c], 0
mov dword [edi + 0x70f8], ebx
test ecx, ecx
mov dword [esp + 0x68], ecx
je 0x456e60
mov dword [esp], ebx
mov ah, byte [esp + 0x2c]
mov bl, byte [esp + 0x18]
mov edi, dword [esp + 0x20]
cmp cl, 0xff
jne 0x456e3c
mov al, bl
mov ebx, dword [esp]
xor ecx, ecx
mov esi, 0x62c767
cmp dword [esp + 0xc], ebx
lea edx, [edi + ebx]
cmovbe edx, esi
seta cl
mov esi, dword [esp + 4]
add ebx, ecx
movzx ecx, byte [edx]
and dword [esp + 0x6c], 0
mov dword [esp], ebx
mov dword [esi + 0x70f8], ebx
mov ebx, eax
mov dword [esp + 0x68], ecx
jmp 0x456d79
mov ecx, dword [esp + 0x20]
xor ebx, ebx
cmp edi, edx
mov edi, 0x62c767
seta bl
lea ecx, [ecx + edx]
cmovbe ecx, edi
add ebx, edx
mov edx, dword [esp + 4]
movzx ecx, byte [ecx]
and dword [esp + 0x6c], 0
mov dword [esp], ebx
mov dword [edx + 0x70f8], ebx
test ecx, ecx
mov dword [esp + 0x68], ecx
je 0x456e88
mov ah, byte [esp + 0x2c]
mov bl, byte [esp + 0x18]
mov edi, dword [esp + 0x20]
cmp cl, 0xff
jne 0x456e4f
mov al, bl
mov ebx, dword [esp]
xor ecx, ecx
mov esi, 0x62c767
cmp dword [esp + 0xc], ebx
lea edx, [edi + ebx]
cmovbe edx, esi
seta cl
mov esi, dword [esp + 4]
add ebx, ecx
movzx ecx, byte [edx]
and dword [esp + 0x6c], 0
mov dword [esp], ebx
mov dword [esi + 0x70f8], ebx
mov ebx, eax
mov dword [esp + 0x68], ecx
jmp 0x456dff
movzx ecx, cl
test ecx, ecx
jne 0x456fb1
mov ebx, dword [esp]
jmp 0x456cb9
movzx ecx, cl
test ecx, ecx
jne 0x457087
mov eax, dword [esp + 0x14]
jmp 0x456e8c
mov edi, eax
jmp 0x456cbd
mov esi, dword [esp + 0x14]
mov bh, ah
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x48]
and esi, 0xffffff
mov dword [edi], eax
mov dword [edi + 4], esi
mov byte [edi + 0x18], 0
jmp 0x4570ad
mov edi, dword [esp + 0x20]
mov edx, dword [esp]
mov ebx, 0x62c767
lea esi, [edi + edx]
mov edi, dword [esp + 0xc]
xor ecx, ecx
cmp edi, edx
seta cl
cmovbe esi, ebx
add ecx, edx
movzx ebx, byte [esi]
mov esi, dword [esp + 0x40]
cmp ecx, edi
mov edi, eax
mov eax, dword [esp + 0x74]
sbb esi, 0xffffffff
shld edi, eax, 8
shl eax, 8
cmp ebx, 0xff
mov dword [esp + 0x40], esi
lea edx, [eax + ebx]
mov ebx, dword [esp + 4]
mov dword [esp + 0x48], edx
mov dword [ebx + 0x70f8], ecx
mov ebx, dword [ebp + 8]
mov dword [ebx + 0x14], esi
mov esi, edi
mov dword [ebx + 4], edi
mov edi, dword [esp + 0x48]
mov dword [ebx], edi
mov byte [ebx + 0x18], 0x20
je 0x456f06
mov edi, dword [ebp + 8]
mov bh, byte [esp + 0x2c]
mov edx, dword [esp + 0x1c]
mov bl, byte [esp + 0x18]
jmp 0x457070
mov edx, dword [esp + 0x20]
mov edi, 0x62c767
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
lea ebx, [edx + ecx]
xor edx, edx
cmp dword [esp + 0xc], ecx
cmovbe ebx, edi
mov edi, dword [esp + 4]
seta dl
add edx, ecx
movzx ecx, byte [ebx]
and dword [esp + 0x6c], 0
mov dword [esp], edx
mov dword [edi + 0x70f8], edx
mov edx, dword [esp + 0x1c]
test ecx, ecx
mov dword [esp + 0x68], ecx
je 0x457062
mov dword [esp + 0x78], esi
mov esi, dword [esp]
mov edi, dword [esp + 0x20]
cmp cl, 0xff
jne 0x456f8f
xor ecx, ecx
cmp dword [esp + 0xc], esi
lea ebx, [edi + esi]
mov edx, 0x62c767
cmovbe ebx, edx
seta cl
mov edx, dword [esp + 0x1c]
add esi, ecx
movzx ecx, byte [ebx]
mov ebx, dword [esp + 4]
and dword [esp + 0x6c], 0
mov dword [ebx + 0x70f8], esi
mov dword [esp + 0x68], ecx
jmp 0x456f58
movzx ecx, cl
mov dword [esp], esi
test ecx, ecx
jne 0x457152
mov edi, dword [ebp + 8]
mov bh, byte [esp + 0x2c]
mov bl, byte [esp + 0x18]
mov esi, dword [esp + 0x78]
jmp 0x45706d
mov esi, dword [esp + 0x24]
mov edi, dword [ebp + 8]
mov edx, dword [esp + 0x74]
mov bh, ah
movzx eax, byte [esp + 0xe0]
and esi, 0xffffff
mov dword [edi], edx
shl eax, 0x18
mov dword [edi + 4], esi
mov byte [edi + 0x18], 8
and dword [edi + 8], 0
mov dword [edi + 0xc], eax
call fcn.00451d5c
cmp al, 0xc
jne 0x45720a
lea eax, [esp + 0x68]
mov dword [esp + 0x50], 0x5a43a8
lea ecx, [esp + 0x98]
lea edx, [esp + 0x50]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x9c], fcn.00442ce0
inc eax
mov dword [esp + 0x54], eax
and dword [esp + 0x60], 0
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x5c], eax
call fcn.0044d6b4
mov al, byte [esp + 0x31]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x24], eax
mov al, byte [esp + 0x32]
mov dword [esp + 0x84], edx
mov dword [esp + 0x48], ecx
mov byte [esp + 0x13], al
mov al, byte [esp + 0x33]
mov byte [esp + 0xb], al
jmp 0x457123
mov edi, dword [ebp + 8]
mov bh, byte [esp + 0x2c]
mov bl, byte [esp + 0x18]
mov ecx, dword [esp]
mov eax, dword [esp + 0x48]
and dword [edi + 8], 0
mov dword [esp + 0x48], eax
mov dword [edi + 0xc], eax
mov dword [esp], ecx
jmp 0x45722f
mov esi, dword [esp + 0x78]
mov bh, ah
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x48]
and esi, 0xffffff
mov dword [edi], eax
shl eax, 0x10
mov dword [edi + 4], esi
mov byte [edi + 0x18], 0x10
and dword [edi + 8], 0
mov dword [edi + 0xc], eax
call fcn.00451d5c
cmp al, 0xc
jne 0x45713d
lea eax, [esp + 0x68]
mov dword [esp + 0x50], 0x5a43a8
lea ecx, [esp + 0x98]
lea edx, [esp + 0x50]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x9c], fcn.00442ce0
inc eax
mov dword [esp + 0x54], eax
and dword [esp + 0x60], 0
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x5c], eax
call fcn.0044d6b4
mov cl, byte [esp + 0x32]
mov al, byte [esp + 0x31]
mov dl, byte [esp + 0x33]
mov byte [esp + 0x13], cl
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x24], eax
mov byte [esp + 0xb], dl
mov dword [esp + 0x84], ecx
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
xor ecx, ecx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x8c], edx
jmp 0x457222
mov byte [edi + 0x1d], al
mov byte [edi + 0x1e], dl
mov cl, 0xd
mov dword [esp + 0x24], 0
jmp 0x457222
mov esi, eax
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x74]
and esi, 0xffffff
mov dword [edi], eax
mov eax, dword [esp + 0x24]
mov dword [edi + 4], esi
mov byte [edi + 0x18], 0x18
and dword [edi + 8], 0
mov dword [edi + 0xc], eax
call fcn.00451d5c
mov bh, byte [esp + 0x2c]
mov bl, byte [esp + 0x18]
cmp al, 0xc
jne 0x45720a
lea eax, [esp + 0x68]
mov dword [esp + 0x50], 0x5a43a8
lea ecx, [esp + 0x98]
lea edx, [esp + 0x50]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x9c], fcn.00442ce0
inc eax
mov dword [esp + 0x54], eax
and dword [esp + 0x60], 0
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x5c], eax
call fcn.0044d6b4
mov al, byte [esp + 0x31]
mov edx, dword [esp + 0x3c]
xor ecx, ecx
mov dword [esp + 0x24], eax
mov al, byte [esp + 0x32]
mov dword [esp + 0x8c], edx
mov byte [esp + 0x13], al
mov al, byte [esp + 0x33]
mov byte [esp + 0xb], al
mov eax, dword [esp + 0x34]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x7c], eax
jmp 0x45721a
mov byte [edi + 0x1d], al
mov byte [edi + 0x1e], dl
mov cl, 0xd
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x74]
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x1c]
cmp cl, 0xd
jne 0x4587da
mov al, byte [edi + 0x1c]
mov byte [esp + 0xc], al
cmp bl, byte [esp + 0xc]
je 0x457243
inc bl
jmp 0x4569d2
mov al, byte [esp + 0xb]
mov esi, dword [esp + 0x8c]
mov cl, byte [esp + 0x13]
mov byte [esp + 0xc], bl
mov byte [esp + 0xe0], al
mov eax, dword [esp + 0x84]
mov dword [esp + 0x108], esi
mov byte [esp + 0x48], cl
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x10c], eax
jmp 0x4572c1
mov edx, dword [esp + 0x84]
mov al, byte [esp + 0xb]
mov esi, dword [esp + 0x7c]
mov cl, byte [esp + 0x13]
mov dword [esp + 0x110], edx
mov edx, dword [esp + 0x8c]
mov byte [esp + 0xe0], al
mov dword [esp + 0x10c], esi
mov byte [esp + 0x48], cl
mov dword [esp + 0x108], edx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0xac]
test eax, eax
je 0x4572eb
mov ecx, ebx
mov esi, eax
mov eax, dword [esp + 0x94]
and cl, 0x3f
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x5a3ab4]
and ecx, 0x3f
mov word [eax + ecx*2], si
inc bl
cmp bl, byte [esp + 0xc]
jbe 0x45606e
mov edi, dword [edi + 0x10]
jmp 0x45523c
mov edx, dword [ebp + 8]
add eax, 0x110
lea ecx, [esp + 0x50]
push eax
push dword [esp + 0x98]
push esi
push dword [esp + 0x10c]
call fcn.004589f2
add esp, 0x10
mov al, byte [esp + 0x50]
cmp al, 0xd
jne 0x458566
mov edx, dword [esp + 0x1c]
jmp 0x458518
mov byte [esp + 0x2c], bh
jmp 0x458514
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x2c], bh
jmp 0x458510
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc8]
jmp 0x457bca
xor ebx, ebx
mov ecx, edx
mov edi, esi
inc ebx
shl ebx, cl
mov dword [esp + 0x28], ebx
xor ebx, ebx
sub al, dl
mov edx, dword [esp + 0x1c]
dec ebx
shl ebx, cl
mov dword [esp + 0xc], ebx
mov ebx, dword [esp]
shld edi, ebx, cl
shld ebx, esi, cl
mov esi, dword [esp + 0xc]
mov ecx, dword [ebp + 8]
not esi
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], ebx
mov bl, byte [esp + 0x18]
mov bh, byte [esp + 0x2c]
mov byte [ecx + 0x18], al
and edi, esi
add edi, dword [esp + 0x28]
mov dword [ecx + 0x10], edi
jmp 0x45523c
mov edx, dword [esp + 0x80]
mov edi, dword [ebp + 8]
sub bl, cl
mov eax, edx
shld eax, esi, cl
shld esi, edx, cl
xor edx, edx
dec edx
mov dword [edi + 8], eax
mov dword [edi + 0xc], esi
mov byte [edi + 0x18], bl
shl edx, cl
not edx
and eax, edx
add eax, edx
mov edx, dword [esp + 0x1c]
mov dword [edi + 0x10], eax
jmp 0x458514
mov eax, edi
mov ecx, ebx
mov edx, 0x7f7f7f7f
not ecx
mov esi, ecx
and esi, edx
add esi, edx
or esi, ecx
not esi
test esi, 0x80808080
jne 0x45741c
mov cl, byte [esp + 0xc]
mov edx, dword [ebp + 8]
mov al, 0x20
sub al, cl
add cl, 0x20
mov byte [edx + 0x18], cl
mov edi, dword [edx]
mov dword [edx], ebx
mov dword [edx + 4], edi
jmp 0x457786
mov edx, dword [esp + 4]
mov ebx, dword [esp]
sub eax, 4
mov ecx, 0
cmovb eax, ecx
mov edi, eax
mov eax, dword [edx + 0x70f0]
xor ecx, ecx
cmp ebx, edi
mov esi, 0x62c767
seta cl
mov dword [esp + 0x28], eax
lea eax, [eax + edi]
cmovbe eax, esi
add ecx, edi
mov edi, dword [ebp + 8]
movzx eax, byte [eax]
cmp ecx, ebx
mov bh, byte [esp + 0xc]
mov edx, dword [edi + 0x14]
mov esi, dword [edi]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 4]
mov edi, dword [esp + 0x14]
sbb edx, 0xffffffff
mov dword [esp + 0x48], esi
add bh, 8
mov dword [esp + 0x4c], eax
shld eax, esi, 8
shl esi, 8
mov dword [esp + 0x14], edx
mov byte [esp + 0x74], bh
or esi, edi
cmp edi, 0xff
mov edi, dword [esp + 4]
mov dword [esp + 0x44], esi
mov dword [edi + 0x70f8], ecx
mov edi, dword [ebp + 8]
mov dword [edi + 0x14], edx
mov edx, eax
mov eax, dword [esp + 0x28]
mov dword [edi], esi
mov dword [edi + 4], edx
mov dword [esp + 0x20], edx
mov byte [edi + 0x18], bh
jne 0x457540
add eax, ecx
mov edi, 0x62c767
mov dword [esp + 0x40], eax
xor eax, eax
cmp dword [esp], ecx
mov edx, dword [esp + 0x40]
seta al
cmovbe edx, edi
add eax, ecx
mov edi, dword [esp + 4]
mov dword [esp + 0x40], edx
mov ecx, dword [esp + 0x40]
movzx ecx, byte [ecx]
and dword [esp + 0x6c], 0
mov dword [edi + 0x70f8], eax
test ecx, ecx
mov dword [esp + 0x68], ecx
je 0x45753e
cmp cl, 0xff
jne 0x45752f
mov ecx, dword [esp + 0x28]
mov edx, 0x62c767
mov esi, dword [esp + 4]
lea edi, [ecx + eax]
xor ecx, ecx
cmp dword [esp], eax
seta cl
cmovbe edi, edx
add eax, ecx
movzx ecx, byte [edi]
and dword [esp + 0x6c], 0
mov dword [esi + 0x70f8], eax
mov dword [esp + 0x68], ecx
jmp 0x4574f9
mov esi, dword [esp + 0x44]
movzx ebx, cl
test ebx, ebx
jne 0x4578b4
mov ecx, eax
mov eax, dword [esp + 0x28]
mov ebx, dword [esp]
mov edx, 0x62c767
lea edi, [eax + ecx]
xor eax, eax
cmp ebx, ecx
seta al
cmovbe edi, edx
mov dl, byte [esp + 0xc]
add eax, ecx
mov ecx, dword [esp + 0x14]
movzx edi, byte [edi]
cmp eax, ebx
mov ebx, dword [esp + 0x20]
sbb ecx, 0xffffffff
add dl, 0x10
shld ebx, esi, 8
shl esi, 8
mov dword [esp + 0x14], ecx
mov byte [esp + 0x4c], dl
or esi, edi
cmp edi, 0xff
mov edi, dword [esp + 4]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x48], esi
mov dword [edi + 0x70f8], eax
mov edi, dword [ebp + 8]
mov dword [edi + 0x14], ecx
mov dword [edi + 4], ebx
mov dword [edi], esi
mov byte [edi + 0x18], dl
jne 0x457627
mov ecx, dword [esp + 0x28]
mov edx, 0x62c767
mov ebx, dword [esp + 0x20]
lea edi, [ecx + eax]
xor ecx, ecx
cmp dword [esp], eax
cmovbe edi, edx
seta cl
mov edx, dword [esp + 4]
add ecx, eax
movzx eax, byte [edi]
and dword [esp + 0x6c], 0
mov dword [edx + 0x70f8], ecx
test eax, eax
mov dword [esp + 0x68], eax
je 0x457622
cmp al, 0xff
jne 0x457617
mov eax, dword [esp + 0x28]
mov edx, 0x62c767
mov esi, dword [esp + 4]
lea edi, [eax + ecx]
xor eax, eax
cmp dword [esp], ecx
seta al
cmovbe edi, edx
add ecx, eax
movzx eax, byte [edi]
and dword [esp + 0x6c], 0
mov dword [esi + 0x70f8], ecx
mov dword [esp + 0x68], eax
jmp 0x4575e2
movzx eax, al
test eax, eax
jne 0x457989
mov edi, dword [ebp + 8]
mov eax, ecx
mov ecx, dword [esp + 0x28]
mov esi, dword [esp]
mov edx, 0x62c767
lea ebx, [ecx + eax]
xor ecx, ecx
cmp esi, eax
seta cl
cmovbe ebx, edx
mov edx, dword [esp + 0x48]
add ecx, eax
movzx ebx, byte [ebx]
cmp ecx, esi
mov esi, dword [esp + 0x40]
sbb dword [esp + 0x14], 0xffffffff
mov eax, ebx
shld esi, edx, 8
shl edx, 8
or edx, ebx
mov bh, byte [esp + 0xc]
mov dword [esp + 0x44], esi
mov dword [esp + 0x20], edx
add bh, 0x18
cmp eax, 0xff
mov eax, dword [esp + 4]
mov byte [esp + 0x74], bh
mov dword [eax + 0x70f8], ecx
mov eax, dword [esp + 0x14]
mov dword [edi + 0x14], eax
mov dword [edi + 4], esi
mov dword [edi], edx
mov byte [edi + 0x18], bh
je 0x4577ba
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x44]
mov edx, ecx
mov ebx, dword [esp]
xor ecx, ecx
add eax, edx
mov esi, 0x62c767
cmp ebx, edx
seta cl
cmovbe eax, esi
add ecx, edx
movzx esi, byte [eax]
mov ah, byte [esp + 0xc]
mov edx, dword [esp + 0x14]
cmp ecx, ebx
mov ebx, dword [esp + 0x20]
sbb edx, 0xffffffff
mov al, ah
shld edi, ebx, 8
shl ebx, 8
add al, 0x20
or ebx, esi
cmp esi, 0xff
mov esi, dword [ebp + 8]
mov dword [esi + 0x14], edx
mov dword [esi + 4], edi
mov dword [esi], ebx
mov byte [esi + 0x18], al
mov esi, dword [esp + 4]
mov dl, ah
mov dword [esi + 0x70f8], ecx
jne 0x45777d
mov eax, dword [esp + 0x28]
mov esi, 0x62c767
lea edx, [eax + ecx]
xor eax, eax
cmp dword [esp], ecx
cmovbe edx, esi
seta al
mov esi, dword [esp + 4]
add eax, ecx
movzx ecx, byte [edx]
mov edx, dword [esp + 0x20]
and dword [esp + 0x6c], 0
mov dword [esi + 0x70f8], eax
test ecx, ecx
mov dword [esp + 0x68], ecx
jne 0x457769
jmp 0x457779
mov ecx, dword [esp + 0x28]
mov edx, 0x62c767
lea esi, [ecx + eax]
xor ecx, ecx
cmp dword [esp], eax
cmovbe esi, edx
seta cl
mov edx, dword [esp + 0x20]
add eax, ecx
movzx ecx, byte [esi]
mov esi, dword [esp + 4]
and dword [esp + 0x6c], 0
mov dword [esi + 0x70f8], eax
mov dword [esp + 0x68], ecx
cmp cl, 0xff
je 0x457736
movzx esi, cl
test esi, esi
jne 0x457a59
mov dl, byte [esp + 0xc]
mov al, 0x20
sub al, dl
mov edx, dword [ebp + 8]
and al, 0x3f
mov ecx, eax
shld edi, ebx, cl
shl ebx, cl
test al, 0x20
mov eax, 0
cmovne edi, ebx
cmovne ebx, eax
mov eax, dword [esp + 0xc8]
mov dword [edx + 8], ebx
mov dword [edx + 0xc], edi
mov edi, edx
mov bh, byte [esp + 0x2c]
mov edx, dword [esp + 0x1c]
mov bl, byte [esp + 0x18]
jmp 0x457bca
mov eax, dword [esp + 0x28]
mov edx, ecx
mov esi, 0x62c767
add eax, ecx
xor ecx, ecx
cmp dword [esp], edx
cmovbe eax, esi
mov esi, dword [esp + 4]
seta cl
movzx eax, byte [eax]
and dword [esp + 0x6c], 0
add ecx, edx
mov dword [esi + 0x70f8], ecx
test eax, eax
mov dword [esp + 0x68], eax
je 0x457696
mov esi, dword [esp + 0xbc]
mov bh, byte [esp + 0x2c]
mov edi, dword [esp + 0xfc]
mov bl, byte [esp + 0x18]
mov dword [esp + 0xbc], esi
cmp al, 0xff
jne 0x457848
mov eax, dword [esp + 0x28]
mov esi, edi
mov edx, 0x62c767
lea edi, [eax + ecx]
xor eax, eax
cmp dword [esp], ecx
cmovbe edi, edx
seta al
mov edx, dword [esp + 4]
add ecx, eax
movzx eax, byte [edi]
and dword [esp + 0x6c], 0
mov edi, esi
mov dword [edx + 0x70f8], ecx
mov dword [esp + 0x68], eax
jmp 0x45780f
movzx eax, al
test eax, eax
je 0x457696
mov esi, dword [esp + 0x40]
mov cl, 0x30
mov edi, dword [ebp + 8]
mov edx, dword [esp + 0x48]
mov dword [esp], eax
mov al, byte [esp + 0x4c]
sub cl, byte [esp + 0xc]
and esi, 0xffffff
mov dword [edi], edx
mov dword [edi + 4], esi
shld esi, edx, cl
shl edx, cl
test cl, 0x20
mov ecx, dword [esp]
mov byte [edi + 0x18], al
mov eax, 0
cmovne esi, edx
cmovne edx, eax
mov dword [edi + 8], edx
mov dword [edi + 0xc], esi
call fcn.00451d5c
cmp al, 0xc
je 0x45790e
mov byte [edi + 0x1d], al
mov byte [edi + 0x1e], dl
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc8]
jmp 0x457b50
mov esi, dword [esp + 0x4c]
mov cl, byte [esp + 0xc]
mov edi, dword [ebp + 8]
mov edx, dword [esp + 0x48]
and esi, 0xffffff
test cl, cl
mov dword [edi], edx
mov dword [edi + 4], esi
mov byte [edi + 0x18], cl
je 0x4578f0
neg cl
mov eax, 0
shld esi, edx, cl
shl edx, cl
test cl, 0x20
cmovne esi, edx
cmovne edx, eax
mov dword [edi + 0xc], esi
mov dword [edi + 8], edx
mov ecx, ebx
call fcn.00451d5c
mov ah, byte [esp + 0x2c]
mov esi, dword [esp + 0xbc]
mov bl, byte [esp + 0x18]
cmp al, 0xc
jne 0x457b11
lea eax, [esp + 0x68]
mov dword [esp + 0x50], 0x5a43a8
lea ecx, [esp + 0x98]
lea edx, [esp + 0x50]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x9c], fcn.00442ce0
inc eax
mov dword [esp + 0x54], eax
and dword [esp + 0x60], 0
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x5c], eax
call fcn.0044d6b4
mov al, byte [esp + 0x31]
mov bh, byte [esp + 0x33]
xor ecx, ecx
mov dword [esp + 0x24], eax
mov al, byte [esp + 0x32]
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x34]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x3c]
jmp 0x457b89
mov dl, 0x38
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x44]
mov dword [esp], eax
mov al, byte [esp + 0x74]
and ebx, 0xffffff
sub dl, byte [esp + 0xc]
mov dword [edi], esi
mov dword [edi + 4], ebx
mov byte [edi + 0x18], al
mov eax, 0
mov ecx, edx
shld ebx, esi, cl
shl esi, cl
mov ecx, dword [esp]
test dl, 0x20
cmovne ebx, esi
cmovne esi, eax
mov dword [edi + 8], esi
mov dword [edi + 0xc], ebx
call fcn.00451d5c
cmp al, 0xc
jne 0x457b37
lea eax, [esp + 0x68]
mov dword [esp + 0x50], 0x5a43a8
lea ecx, [esp + 0x98]
lea edx, [esp + 0x50]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x9c], fcn.00442ce0
inc eax
mov dword [esp + 0x54], eax
and dword [esp + 0x60], 0
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x5c], eax
call fcn.0044d6b4
mov al, byte [esp + 0x31]
mov bh, byte [esp + 0x33]
mov edx, dword [esp + 0x1c]
mov bl, byte [esp + 0x18]
xor ecx, ecx
mov dword [esp + 0x24], eax
mov al, byte [esp + 0x32]
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x34]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x3c]
jmp 0x457b8d
mov ebx, dword [esp + 0x44]
mov cl, 0x28
mov edi, dword [ebp + 8]
mov al, byte [esp + 0x74]
sub cl, byte [esp + 0xc]
and ebx, 0xffffff
mov dword [edi], edx
mov dword [edi + 4], ebx
mov byte [edi + 0x18], al
shld ebx, edx, cl
shl edx, cl
test cl, 0x20
mov eax, 0
mov ecx, esi
cmovne ebx, edx
cmovne edx, eax
mov dword [edi + 8], edx
mov dword [edi + 0xc], ebx
call fcn.00451d5c
cmp al, 0xc
jne 0x457b5c
lea eax, [esp + 0x68]
mov dword [esp + 0x50], 0x5a43a8
lea ecx, [esp + 0x98]
lea edx, [esp + 0x50]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x9c], fcn.00442ce0
inc eax
mov dword [esp + 0x54], eax
and dword [esp + 0x60], 0
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x5c], eax
call fcn.0044d6b4
mov al, byte [esp + 0x31]
mov ecx, dword [esp + 0x38]
mov bh, byte [esp + 0x33]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x24], eax
mov al, byte [esp + 0x32]
mov dword [esp + 0xd8], ecx
xor ecx, ecx
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x3c]
jmp 0x457b7e
mov byte [edi + 0x1d], al
mov byte [edi + 0x1e], dl
mov bh, ah
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc8]
mov cl, 0xd
mov dword [esp + 0x24], 0
mov dword [esp + 0xbc], esi
jmp 0x457b8d
mov byte [edi + 0x1d], al
mov byte [edi + 0x1e], dl
mov bh, byte [esp + 0x2c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc8]
mov bl, byte [esp + 0x18]
mov cl, 0xd
mov dword [esp + 0x24], 0
jmp 0x457b8d
mov byte [edi + 0x1d], al
mov byte [edi + 0x1e], dl
mov bh, byte [esp + 0x2c]
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xc8]
mov cl, 0xd
mov dword [esp + 0x24], 0
mov bl, byte [esp + 0x18]
mov dword [esp + 0xbc], edx
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0xd8]
mov byte [esp + 0x2c], bh
cmp cl, 0xd
mov dword [esp + 0x8c], eax
mov bh, byte [esp + 0x2c]
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0xbc]
mov dword [esp + 0x84], esi
mov esi, ecx
mov cl, byte [esp + 0x2c]
mov byte [esp + 0xb], cl
mov ecx, esi
jne 0x4587da
mov ecx, dword [esp + 0x80]
mov esi, dword [edi + 0x14]
mov byte [esp + 0x2c], bh
mov dword [esp + 0xc8], eax
neg ecx
mov dword [esp + 0xc], esi
mov dword [esp + 0x48], ecx
mov cl, byte [esp + 0xcf]
mov byte [esp + 0xb], cl
mov ecx, dword [esp + 0x124]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x120]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x128]
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 4]
mov ecx, dword [ecx + 0x70f8]
mov dword [esp], ecx
mov ecx, dword [edi]
mov dword [esp + 0x14], ecx
mov ecx, dword [edi + 4]
mov dword [esp + 0x20], ecx
cmp bl, byte [edi + 0x1c]
ja 0x4584d9
mov eax, ebx
and al, 0x3f
movzx eax, al
mov ecx, dword [eax*4 + 0x5a3ab4]
mov eax, dword [esp + 0x94]
and ecx, 0x3f
movzx edx, word [eax + ecx*2]
mov al, byte [edi + 0x18]
test dx, dx
je 0x457ccd
mov esi, dword [ebp + 8]
sub al, 1
mov dword [esp + 0x28], edx
mov byte [esp + 0x18], bl
mov ebx, dword [ebp + 8]
movzx eax, al
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 8]
mov esi, 0
cmovb eax, esi
mov esi, dword [ebp + 8]
mov byte [ebx + 0x18], al
mov ebx, edx
shld ebx, edi, 1
add edi, edi
test edx, edx
mov dword [esi + 8], edi
mov edi, dword [ebp + 8]
mov dword [edi + 0xc], ebx
jns 0x457cc9
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x80]
mov esi, edx
and esi, ebx
test si, si
jne 0x457cc9
mov esi, ebx
test dx, dx
mov ebx, dword [esp + 0x94]
cmovs esi, dword [esp + 0x48]
add esi, edx
mov word [ebx + ecx*2], si
mov bl, byte [esp + 0x18]
mov edx, dword [esp + 0x1c]
test al, al
jne 0x4584d2
cmp byte [edi + 0x1d], 0xc
jne 0x4584d2
mov esi, dword [esp]
mov eax, 0xffffffff
mov byte [esp + 0x18], bl
mov ecx, esi
add ecx, 4
mov edx, ecx
cmovb edx, eax
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x70f4]
cmp edx, eax
ja 0x457d7f
xor edx, edx
cmp esi, 0xfffffffb
ja 0x457d2c
cmp eax, ecx
jb 0x457d2c
mov esi, dword [esp + 4]
mov edi, dword [esp]
mov edx, dword [esi + 0x70f0]
mov edx, dword [edx + edi]
mov dword [esi + 0x70f8], ecx
bswap edx
jmp 0x457d2f
mov ecx, dword [esp]
mov esi, edx
mov ebx, 0x7f7f7f7f
not esi
mov edi, esi
and edi, ebx
add edi, ebx
or edi, esi
not edi
test edi, 0x80808080
jne 0x457d6d
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x14]
mov esi, edx
mov bl, byte [esp + 0x18]
mov byte [edi + 0x18], 0x20
mov dword [edi], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x44], eax
mov dword [edi + 4], eax
jmp 0x458191
mov bl, byte [esp + 0x18]
sub ecx, 4
mov edx, 0
cmovb ecx, edx
mov dword [esp], ecx
mov ecx, dword [esp + 4]
mov edi, dword [esp]
mov esi, 0x62c767
mov dword [esp + 0x40], eax
mov ecx, dword [ecx + 0x70f0]
mov dword [esp + 0x28], ecx
lea edx, [ecx + edi]
xor ecx, ecx
cmp eax, edi
cmovbe edx, esi
seta cl
mov esi, dword [esp + 0x14]
movzx edx, byte [edx]
add ecx, edi
mov edi, dword [esp + 0xc]
cmp ecx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x44], edx
sbb edi, 0xffffffff
mov edx, dword [esp + 0x44]
shld eax, esi, 8
shl esi, 8
mov dword [esp + 0xc], edi
mov dword [esp + 0x74], eax
or esi, edx
cmp edx, 0xff
mov edx, dword [esp + 4]
mov dword [esp + 0x4c], esi
mov dword [edx + 0x70f8], ecx
mov edx, dword [ebp + 8]
mov dword [edx + 0x14], edi
mov edi, dword [esp + 0x28]
mov dword [edx + 4], eax
mov dword [edx], esi
mov byte [edx + 0x18], 8
je 0x457e09
mov eax, dword [esp + 0x40]
mov edx, edi
jmp 0x457e8c
mov esi, dword [esp + 0x40]
xor edx, edx
add edi, ecx
mov eax, 0x62c767
cmp esi, ecx
cmovbe edi, eax
seta dl
mov eax, dword [esp + 4]
add edx, ecx
movzx ecx, byte [edi]
and dword [esp + 0x6c], 0
mov dword [esp], edx
mov dword [eax + 0x70f8], edx
mov eax, esi
test ecx, ecx
mov dword [esp + 0x68], ecx
jne 0x457e75
jmp 0x457e85
mov edi, dword [esp]
mov ecx, dword [esp + 0x28]
mov esi, 0x62c767
lea edx, [ecx + edi]
xor ecx, ecx
cmp eax, edi
cmovbe edx, esi
seta cl
mov esi, dword [esp + 4]
add edi, ecx
movzx ecx, byte [edx]
and dword [esp + 0x6c], 0
mov dword [esp], edi
mov dword [esi + 0x70f8], edi
mov dword [esp + 0x68], ecx
cmp cl, 0xff
je 0x457e41
movzx ecx, cl
test ecx, ecx
jne 0x4581ac
mov ecx, dword [esp]
mov edx, dword [esp + 0x28]
xor ebx, ebx
cmp eax, ecx
lea edx, [edx + ecx]
mov esi, 0x62c767
seta bl
cmovbe edx, esi
mov esi, dword [esp + 0xc]
add ebx, ecx
mov ecx, dword [esp + 0x4c]
movzx edx, byte [edx]
cmp ebx, eax
mov eax, dword [esp + 0x74]
sbb esi, 0xffffffff
mov edi, ecx
mov dword [esp + 0xc], esi
shl edi, 8
shld eax, ecx, 8
mov ecx, dword [ebp + 8]
or edi, edx
cmp edx, 0xff
mov edx, dword [esp + 4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], edi
mov dword [ecx + 0x14], esi
mov dword [ecx + 4], eax
mov dword [ecx], edi
mov byte [ecx + 0x18], 0x10
mov dword [edx + 0x70f8], ebx
je 0x457fd8
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x40]
xor edx, edx
cmp eax, ebx
lea ecx, [esi + ebx]
mov edi, 0x62c767
mov esi, dword [esp + 0x14]
seta dl
cmovbe ecx, edi
mov edi, dword [esp + 0xc]
add edx, ebx
mov ebx, dword [esp + 0x24]
movzx ecx, byte [ecx]
cmp edx, eax
sbb edi, 0xffffffff
shld ebx, esi, 8
shl esi, 8
mov dword [esp + 0xc], edi
or esi, ecx
cmp ecx, 0xff
mov ecx, dword [esp + 4]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x4c], esi
mov dword [ecx + 0x70f8], edx
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x14], edi
mov edi, ebx
mov dword [ecx + 4], ebx
mov dword [ecx], esi
mov byte [ecx + 0x18], 0x18
jne 0x45807b
mov ecx, dword [esp + 0x28]
xor ebx, ebx
cmp eax, edx
mov esi, 0x62c767
seta bl
lea ecx, [ecx + edx]
cmovbe ecx, esi
add ebx, edx
mov edx, dword [esp + 4]
movzx ecx, byte [ecx]
and dword [esp + 0x6c], 0
mov dword [esp], ebx
mov dword [edx + 0x70f8], ebx
test ecx, ecx
mov dword [esp + 0x68], ecx
je 0x458078
mov bl, byte [esp + 0x18]
cmp cl, 0xff
jne 0x45806d
mov edi, dword [esp]
mov ecx, dword [esp + 0x28]
mov esi, 0x62c767
lea edx, [ecx + edi]
xor ecx, ecx
cmp eax, edi
cmovbe edx, esi
seta cl
mov esi, dword [esp + 4]
add edi, ecx
movzx ecx, byte [edx]
and dword [esp + 0x6c], 0
mov dword [esp], edi
mov dword [esi + 0x70f8], edi
mov dword [esp + 0x68], ecx
jmp 0x457f99
mov eax, dword [esp + 0x28]
xor ecx, ecx
mov edi, 0x62c767
lea esi, [eax + ebx]
mov eax, dword [esp + 0x40]
cmp eax, ebx
seta cl
cmovbe esi, edi
add ecx, ebx
mov ebx, ecx
movzx ecx, byte [esi]
mov esi, dword [esp + 0x28]
and dword [esp + 0x6c], 0
mov dword [edx + 0x70f8], ebx
test ecx, ecx
mov dword [esp + 0x68], ecx
je 0x457ef8
mov dword [esp], ebx
mov bl, byte [esp + 0x18]
cmp cl, 0xff
jne 0x458056
mov edi, dword [esp]
mov ecx, dword [esp + 0x28]
mov esi, 0x62c767
lea edx, [ecx + edi]
xor ecx, ecx
cmp eax, edi
cmovbe edx, esi
seta cl
mov esi, dword [esp + 4]
add edi, ecx
movzx ecx, byte [edx]
and dword [esp + 0x6c], 0
mov dword [esp], edi
mov dword [esi + 0x70f8], edi
mov dword [esp + 0x68], ecx
jmp 0x45801b
movzx ecx, cl
test ecx, ecx
jne 0x458245
mov ebx, dword [esp]
mov esi, dword [esp + 0x28]
jmp 0x457ef8
movzx ecx, cl
test ecx, ecx
jne 0x4582fd
mov edx, dword [esp]
mov ecx, dword [esp + 0x28]
mov ebx, 0x62c767
mov edi, dword [esp + 0xc]
lea esi, [ecx + edx]
xor ecx, ecx
cmp eax, edx
seta cl
cmovbe esi, ebx
add ecx, edx
movzx ebx, byte [esi]
mov esi, dword [esp + 0x4c]
cmp ecx, eax
mov eax, dword [esp + 0x20]
sbb edi, 0xffffffff
mov dword [esp + 0xc], edi
shld eax, esi, 8
shl esi, 8
cmp ebx, 0xff
lea edx, [esi + ebx]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 4]
mov dword [ebx + 0x14], edi
mov edi, dword [esp + 0x14]
mov dword [ebx + 4], eax
mov dword [edx + 0x70f8], ecx
mov edx, eax
mov dword [esp + 0x44], edx
mov dword [ebx], edi
mov byte [ebx + 0x18], 0x20
je 0x4580f4
mov edi, dword [ebp + 8]
mov edx, dword [esp + 0x1c]
mov bl, byte [esp + 0x18]
jmp 0x45818d
mov eax, dword [esp + 0x28]
xor edx, edx
mov edi, 0x62c767
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0x20]
lea ebx, [eax + ecx]
mov eax, dword [esp + 0x40]
cmp eax, ecx
cmovbe ebx, edi
mov edi, dword [esp + 4]
seta dl
add edx, ecx
movzx ecx, byte [ebx]
and dword [esp + 0x6c], 0
mov dword [esp], edx
mov dword [edi + 0x70f8], edx
mov edx, dword [esp + 0x1c]
test ecx, ecx
mov dword [esp + 0x68], ecx
je 0x458183
mov edi, dword [esp]
cmp cl, 0xff
jne 0x458175
mov ecx, dword [esp + 0x28]
mov edx, 0x62c767
lea ebx, [ecx + edi]
xor ecx, ecx
cmp eax, edi
cmovbe ebx, edx
seta cl
mov edx, dword [esp + 0x1c]
add edi, ecx
movzx ecx, byte [ebx]
mov ebx, dword [esp + 4]
and dword [esp + 0x6c], 0
mov dword [ebx + 0x70f8], edi
mov dword [esp + 0x68], ecx
jmp 0x45813c
movzx ecx, cl
mov dword [esp], edi
test ecx, ecx
jne 0x4583b5
mov edi, dword [ebp + 8]
mov bl, byte [esp + 0x18]
mov ecx, dword [esp]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x44]
and dword [edi + 8], 0
mov dword [esp + 0x14], esi
mov dword [edi + 0xc], esi
mov dword [esp], ecx
mov dword [esp + 0x20], eax
jmp 0x4584d2
mov edx, dword [esp + 0x20]
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x14]
and edx, 0xffffff
mov dword [edi], eax
mov dword [edi + 4], edx
mov dword [esp + 0x20], edx
mov byte [edi + 0x18], 0
call fcn.00451d5c
cmp al, 0xc
jne 0x45846b
lea eax, [esp + 0x68]
mov dword [esp + 0x50], 0x5a43a8
lea ecx, [esp + 0x98]
lea edx, [esp + 0x50]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x9c], fcn.00442ce0
inc eax
mov dword [esp + 0x54], eax
and dword [esp + 0x60], 0
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x5c], eax
call fcn.0044d6b4
mov cl, byte [esp + 0x32]
mov al, byte [esp + 0x31]
mov dl, byte [esp + 0x33]
mov byte [esp + 0x13], cl
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x24], eax
mov byte [esp + 0xb], dl
mov dword [esp + 0x84], ecx
jmp 0x4582f0
mov esi, dword [esp + 0x74]
mov edi, dword [ebp + 8]
mov edx, dword [esp + 0x4c]
movzx eax, byte [esp + 0x44]
and esi, 0xffffff
mov dword [edi], edx
shl eax, 0x18
mov dword [edi + 4], esi
mov byte [edi + 0x18], 8
and dword [edi + 8], 0
mov dword [edi + 0xc], eax
call fcn.00451d5c
cmp al, 0xc
jne 0x45847d
lea eax, [esp + 0x68]
mov dword [esp + 0x50], 0x5a43a8
lea ecx, [esp + 0x98]
lea edx, [esp + 0x50]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x9c], fcn.00442ce0
inc eax
mov dword [esp + 0x54], eax
and dword [esp + 0x60], 0
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x5c], eax
call fcn.0044d6b4
mov cl, byte [esp + 0x32]
mov al, byte [esp + 0x31]
mov bh, byte [esp + 0x33]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x20], esi
mov byte [esp + 0x13], cl
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x24], eax
mov byte [esp + 0xb], bh
mov dword [esp + 0x84], edx
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x38]
mov dword [esp + 0x7c], eax
jmp 0x4583a3
mov esi, dword [esp + 0x24]
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x14]
and esi, 0xffffff
mov dword [edi], eax
shl eax, 0x10
mov dword [edi + 4], esi
mov byte [edi + 0x18], 0x10
and dword [edi + 8], 0
mov dword [edi + 0xc], eax
call fcn.00451d5c
cmp al, 0xc
jne 0x458497
lea eax, [esp + 0x68]
mov dword [esp + 0x50], 0x5a43a8
lea ecx, [esp + 0x98]
lea edx, [esp + 0x50]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x9c], fcn.00442ce0
inc eax
mov dword [esp + 0x54], eax
and dword [esp + 0x60], 0
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x5c], eax
call fcn.0044d6b4
mov cl, byte [esp + 0x32]
mov al, byte [esp + 0x31]
mov bh, byte [esp + 0x33]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x20], esi
mov byte [esp + 0x13], cl
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x24], eax
mov byte [esp + 0xb], bh
mov dword [esp + 0x84], edx
mov dword [esp + 0x7c], ecx
mov eax, dword [esp + 0x3c]
xor ecx, ecx
mov dword [esp + 0x8c], eax
jmp 0x4584c5
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x4c]
and esi, 0xffffff
mov dword [esp + 0x20], esi
mov dword [edi], eax
mov eax, dword [esp + 0x74]
mov dword [edi + 4], esi
mov byte [edi + 0x18], 0x18
and dword [edi + 8], 0
mov dword [edi + 0xc], eax
call fcn.00451d5c
mov bl, byte [esp + 0x18]
cmp al, 0xc
jne 0x4584ad
lea eax, [esp + 0x68]
mov dword [esp + 0x50], 0x5a43a8
lea ecx, [esp + 0x98]
lea edx, [esp + 0x50]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x9c], fcn.00442ce0
inc eax
mov dword [esp + 0x54], eax
and dword [esp + 0x60], 0
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x5c], eax
call fcn.0044d6b4
mov dl, byte [esp + 0x32]
mov al, byte [esp + 0x31]
mov bh, byte [esp + 0x33]
mov esi, dword [esp + 0x38]
xor ecx, ecx
mov byte [esp + 0x13], dl
mov edx, dword [esp + 0x34]
mov dword [esp + 0x24], eax
mov byte [esp + 0xb], bh
mov dword [esp + 0x7c], esi
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x8c], edx
jmp 0x4584bd
mov byte [edi + 0x1d], al
mov byte [edi + 0x1e], dl
mov cl, 0xd
mov dword [esp + 0x24], 0
jmp 0x4584c5
mov byte [edi + 0x1d], al
mov byte [edi + 0x1e], dl
mov edx, dword [esp + 0x4c]
mov cl, 0xd
mov dword [esp + 0x24], 0
mov dword [esp + 0x14], edx
jmp 0x4584a7
mov cl, 0xd
mov byte [edi + 0x1d], al
mov byte [edi + 0x1e], dl
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], esi
jmp 0x4584c5
mov byte [edi + 0x1d], al
mov byte [edi + 0x1e], dl
mov cl, 0xd
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x1c]
cmp cl, 0xd
jne 0x4587da
inc bl
jmp 0x457c35
mov esi, dword [esp + 0x84]
mov eax, edi
mov edi, dword [edi + 0x10]
mov cl, byte [esp + 0xb]
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x124], esi
mov esi, dword [esp + 0x8c]
mov byte [esp + 0xcf], cl
mov dword [esp + 0x120], ebx
mov dword [esp + 0x128], esi
dec edi
mov dword [eax + 0x10], edi
mov ebx, dword [esp + 4]
dec dword [ebx + 0x7134]
mov esi, dword [esp + 0xfc]
jne 0x4550cf
mov dword [esp + 0x1c], edx
lea ecx, [esp + 0x50]
mov edx, ebx
push dword [ebp + 8]
call fcn.00577210
pop eax
mov al, byte [esp + 0x50]
cmp al, 0xd
jne 0x458566
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0xfc]
jmp 0x4550cf
mov eax, dword [esp + 0x13c]
mov ebx, dword [esp + 4]
jmp 0x4550b1
movsd xmm0, qword [esp + 0x51]
movsd xmm1, qword [esp + 0x58]
mov ecx, dword [esp + 0x88]
movsd qword [ecx + 8], xmm1
movsd qword [ecx + 1], xmm0
mov byte [ecx], al
jmp 0x458813
add eax, 0x108
lea ecx, [esp + 0xe8]
lea edx, [esp + 0x50]
mov dword [ecx], eax
xor eax, eax
mov dword [edx], str.No_huffman_table_for_component:
mov dword [ecx + 4], fcn.00437820
inc eax
mov dword [edx + 4], eax
and dword [edx + 0x10], 0
mov dword [edx + 8], ecx
mov dword [edx + 0xc], eax
jmp 0x4585ef
add eax, 0x108
lea edx, [esp + 0x50]
lea ecx, [esp + 0xe8]
mov dword [edx], str.Huffman_table_at_index___not_initialized_FZ
mov dword [edx + 4], 2
and dword [edx + 0x10], 0
mov dword [ecx], eax
mov dword [edx + 8], ecx
mov dword [ecx + 4], fcn.00437820
mov dword [edx + 0xc], 1
lea esi, [esp + 0x34]
mov ecx, esi
call fcn.0044d6b4
mov al, byte [esi - 1]
mov edi, dword [esp + 0x88]
mov ebx, dword [esi + 8]
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov byte [edi + 3], al
movzx eax, word [esi - 3]
mov word [edi + 1], ax
mov byte [edi], 0
mov dword [edi + 4], ecx
mov dword [edi + 0xc], ebx
mov dword [edi + 8], edx
jmp 0x458813
mov eax, dword [esp + 0x88]
mov byte [eax], 0xd
jmp 0x458813
push 0x1f
pop ebx
mov ecx, ebx
xor edx, edx
call fcn.0045c366
mov esi, eax
mov edi, edx
push 0x1f
push str.Bad_Huffman_code__corrupt_JPEG_
push eax
call fcn.005669c0
add esp, 0xc
mov al, 1
mov cl, 3
mov dword [esp + 0x24], eax
jmp 0x4587f4
movsd xmm1, qword [esp + 0xed]
mov bl, byte [esp + 0xb]
movsd xmm0, qword [esp + 0xe8]
movsd qword [esp + 0x9d], xmm1
movsd qword [esp + 0x98], xmm0
jmp 0x458718
lea eax, [esp + 0x11c]
jmp 0x45858f
lea eax, [esp + 0x11c]
jmp 0x4585c0
lea esi, [esp + 0x50]
lea eax, [esp + 0xe4]
lea edi, [esp + 0x68]
mov dword [esi], str.Bad_Huffman_Code_0x__corrupt_JPEG
mov dword [esi + 4], 2
and dword [esi + 0x10], 0
mov dword [esp + 0x30], eax
lea eax, [esp + 0x30]
mov ecx, edi
mov edx, esi
mov dword [esp + 0x34], fcn.00442b90
mov dword [esi + 8], eax
mov dword [esi + 0xc], 1
call fcn.0044d6b4
movsd xmm0, qword [edi]
mov eax, dword [edi + 8]
xor ecx, ecx
mov dword [esi + 9], eax
movsd qword [esi + 1], xmm0
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 5]
movsd qword [esp + 0x98], xmm0
movsd qword [esp + 0x9d], xmm1
mov edx, dword [esp + 0x88]
movsd xmm0, qword [esp + 0x98]
movsd xmm1, qword [esp + 0x9d]
mov byte [edx + 2], bl
movsd qword [edx + 3], xmm0
movsd qword [edx + 8], xmm1
jmp 0x45880e
mov cl, byte [esp + 0x33]
mov edi, dword [esp + 0x88]
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
mov byte [edi + 3], cl
movzx ecx, word [esp + 0x31]
mov word [edi + 1], cx
mov byte [edi], al
mov dword [edi + 4], edx
mov dword [edi + 0xc], ebx
mov dword [edi + 8], esi
jmp 0x458813
lea edx, [esp + 0x50]
lea eax, [esp + 0xc0]
lea esi, [esp + 0xe8]
mov dword [edx], str.Bad_Huffman_Code_0x__corrupt_JPEG
mov dword [edx + 4], 2
and dword [edx + 0x10], 0
mov dword [esp + 0x30], eax
lea eax, [esp + 0x30]
mov ecx, esi
mov dword [esp + 0x34], fcn.00442b90
mov dword [edx + 8], eax
mov dword [edx + 0xc], 1
call fcn.0044d6b4
mov eax, dword [esi]
xor ecx, ecx
mov dword [esp + 0x84], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x7c], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x24], eax
mov al, byte [esp + 0x13]
mov esi, dword [esp + 0x84]
mov ah, byte [esp + 0xb]
mov edi, dword [esp + 0x7c]
mov ebx, dword [esp + 0x8c]
mov edx, dword [esp + 0x88]
mov byte [edx + 2], al
mov byte [edx + 3], ah
mov eax, dword [esp + 0x24]
mov dword [edx + 4], esi
mov dword [edx + 8], edi
mov dword [edx + 0xc], ebx
mov byte [edx], cl
mov byte [edx + 1], al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov byte [edx], 1
mov dword [edx + 4], str.No_huffman_table_for_componentHuffman_table_at_index_not_initialized_CZ
mov dword [edx + 0xc], ecx
mov dword [edx + 8], eax
jmp 0x458813
push 4
pop edx
push 0x5a45ac
jmp 0x458878
push 4
pop edx
mov ecx, dword [esp + 0x94]
push 0x5a458c
jmp 0x458878
mov ecx, eax
push 0x5a459c
jmp 0x458878
push 0x12
pop eax
mov ecx, edx
mov edx, eax
push 0x5a4824
jmp 0x458878
push 0x12
pop edx
mov ecx, eax
push 0x5a4834
call fcn.00576a40
pop eax
ud2
push 4
pop edx
push 0x5a4528
jmp 0x458878
push 0x2b
pop edx
mov ecx, 0x62e67f
push 0x5a4464
push 0x5a2bac
lea eax, [esp + 0x58]
push eax
call fcn.00576e10
add esp, 0xc
ud2
push 0x2b
pop edx
mov ecx, str.called__Option::unwrap____on_a__None__valuecalled__Result::unwrap____on_an__Err__value
push 0x5a4444
call fcn.00576b20
jmp 0x45887d