Function at 0x45753e
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 0x45759c
and dword [eax + 0x110], 0
add eax, 0x170
add ecx, 0xfffffe90
jmp 0x457584
movzx ecx, byte [ebx + 0x714e]
movzx edi, byte [ebx + 0x7153]
lea esi, [ebx + 0x7153]
call fcn.00450e1a
cmp eax, edi
jae 0x457634
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.0043d5e0
mov dword [eax + 8], ecx
mov dword [eax + 0xc], fcn.004379c0
mov dword [esi], 0x5b2d5c
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.004ba4b9
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 0x45b2df
mov al, byte [ebx + 0x7150]
mov edx, edi
mov dword [esp + 4], ebx
cmp dl, 1
jne 0x45766f
test al, al
je 0x4576ac
cmp byte [ebx + 0x714f], 0
jne 0x4576ac
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 0x45b2df
test al, al
je 0x457713
push 0x22
pop esi
mov ecx, esi
call fcn.004fda03
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.00570db0
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 0x45b2df
mov esi, dword [ebx + 0x7120]
mov edx, dword [ebx + 0x70e4]
cmp esi, edx
mov dword [esp + 0x118], esi
jae 0x4577a2
mov ecx, dword [ebx + 0x70dc]
push 0x5b2b34
push esi
call fcn.00455803
pop ecx
pop edx
cmp byte [eax + 0x16a], 0
je 0x457ade
cmp byte [ebx + 0x7148], 0
je 0x457b26
mov eax, dword [ebx + 0x7118]
mov ecx, dword [ebx + 0x711c]
mov dword [esp + 0xd0], eax
mov dword [esp + 0x114], ecx
jmp 0x457b56
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 0x4577bd
movzx ecx, al
cmp al, 4
jae 0x45b308
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 0x457a9f
mov ecx, dword [esi + 0x70dc]
push 0x5b2cec
push eax
call fcn.00455803
pop ecx
pop edx
mov ecx, dword [eax + 0x108]
cmp ecx, 3
ja 0x45b058
mov edx, dword [esp + 0x1c]
imul ecx, ecx, 0xd94
cmp word [edx + ecx + 0x990], 2
je 0x45b089
mov esi, dword [esp]
mov eax, ebx
mov edx, edi
jmp 0x457724
lea esi, [esp + 0x50]
lea eax, [esp + 0x118]
lea ecx, [esp + 0x30]
lea edi, [esp + 0x14c]
jmp 0x457ab5
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 0x45b0f6
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 0x457a93
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 0x457a4b
mov eax, dword [esp + 0x94]
movzx ecx, al
cmp al, 4
jae 0x45b34c
mov edx, dword [esp + 4]
mov eax, dword [edx + ecx*4 + 0x7120]
mov ecx, dword [edx + 0x70dc]
mov edx, dword [edx + 0x70e4]
push 0x5b2c68
mov dword [esp + 0x98], eax
push eax
call fcn.00455803
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_initializedX_
mov dword [esp + 0x58], 0x1e
mov byte [esp + 0x50], 1
cmp eax, 3
ja 0x45b2e7
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.0044eff8
pop eax
cmp word [ebx + edi + 0x990], 2
mov edx, dword [esp + 0x18]
mov eax, 0
mov dword [esp + 0x54], 0x5b2c96
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.0045b498
pop eax
mov al, byte [esp + 0x30]
cmp al, 0xd
jne 0x45b20f
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 0x457a3a
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 0x457a2d
cmp dword [esp + 0x94], 3
ja 0x45b312
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 0x45b323
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 4]
add eax, eax
add eax, dword [ecx]
cmp byte [edx + 0x7151], 0
je 0x4579f0
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x50]
push eax
push dword [esp + 0x24]
call fcn.0045bdcc
pop eax
pop ecx
jmp 0x457a0c
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.0045b4be
add esp, 0x10
mov al, byte [esp + 0x50]
cmp al, 0xd
jne 0x45b034
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xd0]
mov eax, dword [esp + 0x28]
inc edi
jmp 0x457974
mov ebx, dword [esp + 0x4c]
mov edi, dword [esp + 0x24]
jmp 0x457959
mov esi, dword [esp]
mov ebx, eax
mov dword [esp + 0x94], ebx
jmp 0x457828
mov eax, dword [esp + 4]
dec dword [eax + 0x7134]
mov eax, dword [esp + 0x78]
jne 0x4577fb
mov edx, dword [esp + 4]
lea ecx, [esp + 0x50]
push dword [ebp + 8]
call fcn.00581610
pop eax
mov al, byte [esp + 0x50]
cmp al, 0xd
jne 0x45b034
mov edx, dword [esp + 0xd0]
mov esi, dword [esp]
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xc]
jmp 0x4577fb
mov ecx, dword [esp + 0xac]
jmp 0x4577d7
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.004379c0
mov dword [esi + 0xc], 1
jmp 0x4575fa
mov ecx, dword [ebx + 0x70dc]
mov edx, dword [ebx + 0x70e4]
push 0x5b2b44
push esi
call fcn.00455803
pop ecx
pop edx
cmp dword [eax + 0x100], 1
jne 0x457b26
mov ecx, dword [ebx + 0x70dc]
mov edx, dword [ebx + 0x70e4]
push 0x5b2b54
push esi
call fcn.00455803
pop ecx
pop edx
cmp dword [eax + 0x104], 1
je 0x4576e7
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 0x45b0f6
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 0x45b024
test ecx, ecx
lea esi, [ebx + 1]
setg dl
test al, dl
je 0x457be7
mov edx, dword [ebp + 8]
dec ecx
mov ebx, esi
mov dword [edx + 0x10], ecx
mov edx, dword [esp + 0x1c]
jmp 0x457bbf
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 0x5b2b64
push edi
call fcn.00455803
pop ecx
pop edx
cmp edi, 4
jae 0x45b377
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 0x5b2b84
call fcn.00451fe1
pop ecx
cmp edx, 0x40
mov dword [esp + 0x94], eax
jne 0x45b356
mov ebx, dword [esp + 4]
cmp byte [ebx + 0x714f], 0
je 0x457db4
mov ecx, dword [ebx + 0x70dc]
mov edx, dword [ebx + 0x70e4]
push 0x5b2c10
push edi
call fcn.00455803
pop ecx
pop edx
mov eax, dword [eax + 0x10c]
cmp eax, 3
mov dword [esp + 0x11c], eax
ja 0x45b15d
mov ecx, dword [esp + 0x134]
imul edx, eax, 0xd94
movzx eax, word [ecx + edx + 0x990]
cmp ax, 2
je 0x45b169
add edx, ecx
cmp byte [ebx + 0x7151], 0
mov dword [esp + 0x28], edx
je 0x457ea3
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 0x458b0d
mov edx, dword [esp + 0x1c]
mov bh, byte [esp + 0x2c]
test edi, edi
jle 0x459e06
mov eax, dword [esp + 0x94]
mov dword [esp + 0x1c], edx
add eax, 2
push 0x7e
push 0x5b2f94
push eax
call fcn.0057148a
add esp, 0xc
test eax, eax
je 0x459e0f
mov edi, dword [ebp + 8]
mov al, byte [edi + 0x18]
cmp al, 0x1f
ja 0x459e1f
cmp byte [edi + 0x1d], 0xc
mov edx, dword [esp + 0x1c]
mov byte [esp + 0xc], al
jne 0x459e23
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 0x459efe
xor ebx, ebx
cmp edi, 0xfffffffb
ja 0x459eb0
cmp dword [esp], eax
jb 0x459eb0
mov esi, dword [esp + 4]
mov ecx, dword [esi + 0x70f0]
mov ebx, dword [ecx + edi]
mov dword [esi + 0x70f8], eax
bswap ebx
jmp 0x459eb2
mov ecx, dword [ebx + 0x70dc]
mov edx, dword [ebx + 0x70e4]
push 0x5b2ba4
push edi
call fcn.00455803
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.0044eff8
pop eax
mov eax, dword [esp + 0x104]
mov ecx, dword [esp]
mov dword [esp + 0x54], 0x5b2bd5
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.0045b498
pop eax
mov al, byte [esp + 0x30]
cmp al, 0xd
jne 0x45b20f
mov esi, dword [esp + 0x34]
mov ecx, dword [ebx + 0x70dc]
mov edx, dword [ebx + 0x70e4]
push 0x5b2c00
push edi
call fcn.00455803
pop ecx
pop edx
cmp byte [ebx + 0x7151], 0
je 0x459dcd
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x50]
push dword [esp + 0x94]
push dword [esp + 0x104]
call fcn.0045bdcc
pop eax
pop ecx
jmp 0x459df1
mov edi, dword [ebp + 8]
lea ecx, [edx + 0x992]
test ax, ax
mov eax, 0
mov edx, 0x5b2f44
cmove ecx, eax
mov dword [esp + 0x74], ecx
movzx esi, byte [edi + 0x1a]
call fcn.0042d48a
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 0x457f5e
cmp byte [esp + 0xc], 0xc
mov ebx, dword [esp + 4]
jne 0x457f5e
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 0x457fc6
xor edx, edx
cmp esi, 0xfffffffb
ja 0x457f6a
cmp ecx, eax
jb 0x457f6a
mov edx, dword [ebx + 0x70f0]
mov edx, dword [edx + esi]
mov dword [ebx + 0x70f8], eax
bswap edx
jmp 0x457f6c
mov edx, dword [esp + 0x28]
mov dword [esp], esi
jmp 0x458631
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 0x457fb5
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 0x4585f8
mov ebx, dword [esp + 4]
sub eax, 4
mov edx, 0
cmovb eax, edx
mov esi, eax
mov eax, dword [ebx + 0x70f0]
mov ebx, 0x63b567
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 0x4581c7
lea edx, [edi + eax]
mov edi, ecx
xor ebx, ebx
cmp ecx, eax
mov edi, 0x63b567
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 0x4581bd
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
cmp al, 0xff
jne 0x4580cc
xor eax, eax
cmp ecx, ebx
lea edx, [edi + ebx]
mov esi, 0x63b567
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 0x458092
movzx eax, al
test eax, eax
je 0x4581c5
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 0x458127
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.0045486c
cmp al, 0xc
mov byte [esp + 0xc], al
jne 0x458a74
lea eax, [esp + 0xb0]
mov dword [esp + 0x50], 0x5b2ad8
lea ecx, [esp + 0xc0]
lea edx, [esp + 0x50]
mov dword [esp + 0xc0], eax
xor eax, eax
mov dword [esp + 0xc4], fcn.00442ef0
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.004ba4b9
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 0x458a81
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, 0x63b567
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 0x45833a
mov edx, dword [esp + 0xc]
mov esi, dword [esp]
mov ebx, 0x63b567
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 0x4584c1
mov eax, dword [esp + 0xc]
xor ecx, ecx
cmp dword [esp + 0x20], edx
mov esi, 0x63b567
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 0x4584be
mov ecx, ebx
cmp al, 0xff
jne 0x4584b3
mov edi, dword [esp]
mov eax, dword [esp + 0xc]
mov esi, 0x63b567
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 0x4582f8
mov edx, dword [esp]
mov edi, dword [esp + 0xc]
mov esi, ecx
xor ecx, ecx
mov ebx, 0x63b567
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 0x45889f
mov ecx, dword [esp + 0x20]
cmp al, 0xff
jne 0x4583be
mov edi, dword [esp]
mov eax, dword [esp + 0xc]
mov esi, 0x63b567
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 0x458382
movzx eax, al
test eax, eax
je 0x458240
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.0045486c
cmp al, 0xc
mov byte [esp + 0xc], al
jne 0x458a89
lea eax, [esp + 0xb0]
mov dword [esp + 0x50], 0x5b2ad8
lea ecx, [esp + 0xc0]
lea edx, [esp + 0x50]
mov dword [esp + 0xc0], eax
xor eax, eax
mov dword [esp + 0xc4], fcn.00442ef0
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.004ba4b9
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 0x458a96
movzx ecx, al
test ecx, ecx
jne 0x4588aa
mov edx, dword [esp]
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
xor ebx, ebx
mov eax, 0x63b567
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 0x45854d
mov edi, dword [ebp + 8]
mov al, byte [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov dword [esp], ebx
jmp 0x4585e0
mov eax, dword [esp + 0xc]
xor ecx, ecx
cmp dword [esp + 0x20], ebx
lea edx, [eax + ebx]
mov eax, 0x63b567
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 0x4585d5
mov ecx, dword [esp + 0x20]
cmp al, 0xff
jne 0x4585ca
mov edi, dword [esp]
mov eax, dword [esp + 0xc]
mov esi, 0x63b567
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 0x45858e
movzx eax, al
test eax, eax
jne 0x458990
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 0x4586eb
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 + 0x5b21e4]
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 0x458880
mov ecx, eax
sar ecx, 9
cmp eax, 0x1400
jl 0x45871f
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 0x45872a
mov esi, dword [esp + 0x28]
cmp dword [esi + ecx*4], ebx
jg 0x458736
inc ecx
jmp 0x45870e
and eax, 0x1ff
mov byte [esp + 0x2c], bh
jmp 0x45875c
cmp eax, 0x2400
jge 0x458738
jmp 0x45b175
mov edx, ecx
cmp edx, 0x12
jae 0x45b32c
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 0x45886a
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 + 0x5b21e4]
and eax, 0x3f
mov word [ecx + eax*2], si
mov ecx, edi
jmp 0x458880
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
cmp ecx, 0xf
jne 0x459e7c
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 0x457f0b
jmp 0x45afe2
mov ecx, dword [esp + 0x20]
mov edx, edi
jmp 0x458244
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.0045486c
cmp al, 0xc
mov byte [esp + 0xc], al
jne 0x458aab
lea eax, [esp + 0xb0]
mov dword [esp + 0x50], 0x5b2ad8
lea ecx, [esp + 0xc0]
lea edx, [esp + 0x50]
mov dword [esp + 0xc0], eax
xor eax, eax
mov dword [esp + 0xc4], fcn.00442ef0
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.004ba4b9
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 0x458ab8
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.0045486c
cmp al, 0xc
mov byte [esp + 0xc], al
jne 0x458ad1
lea eax, [esp + 0xb0]
mov dword [esp + 0x50], 0x5b2ad8
lea ecx, [esp + 0xc0]
lea edx, [esp + 0x50]
mov dword [esp + 0xc0], eax
xor eax, eax
mov dword [esp + 0xc4], fcn.00442ef0
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.004ba4b9
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 0x458ade
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 0x458ac7
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 0x458ae6
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 0x458af5
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 0x45b130
mov ecx, dword [esp + 0x14]
mov eax, ebx
mov dword [esp + 0x18], eax
jmp 0x458635
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 0x4592f2
cmp byte [edi + 0x1d], 0xc
jne 0x4592f2
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 0x458bef
xor ebx, ebx
cmp edi, 0xfffffffb
ja 0x458ba8
cmp dword [esp + 0xc], eax
jb 0x458ba8
mov esi, dword [esp + 4]
mov ecx, dword [esi + 0x70f0]
mov ebx, dword [ecx + edi]
mov dword [esi + 0x70f8], eax
bswap ebx
jmp 0x458baa
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 0x458be2
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 0x458fd4
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, 0x63b567
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 0x458cf0
xor eax, eax
cmp dword [esp + 0xc], ecx
lea edi, [ebx + ecx]
mov esi, 0x63b567
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 0x458ceb
mov ebx, dword [esp]
cmp cl, 0xff
jne 0x458cda
xor ecx, ecx
cmp dword [esp + 0xc], eax
lea edi, [ebx + eax]
mov edx, 0x63b567
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 0x458ca4
movzx ecx, cl
test ecx, ecx
jne 0x458ff9
mov edx, dword [esp + 0x24]
jmp 0x458cee
mov ebx, dword [esp]
mov ecx, eax
mov esi, dword [esp + 0xc]
xor eax, eax
lea edi, [ebx + ecx]
mov ebx, 0x63b567
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 0x458dd9
mov ecx, dword [esp]
mov edx, 0x63b567
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 0x458dd4
mov ebx, dword [esp + 0x40]
mov edx, dword [esp]
cmp al, 0xff
jne 0x458dc9
xor eax, eax
cmp dword [esp + 0xc], ecx
lea edi, [edx + ecx]
mov edx, 0x63b567
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 0x458d94
movzx eax, al
test eax, eax
jne 0x45906a
mov edi, dword [ebp + 8]
mov eax, ecx
mov ecx, dword [esp]
mov edx, dword [esp + 0xc]
mov ebx, 0x63b567
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 0x458f37
mov edi, dword [esp + 0xc]
mov ebx, dword [esp]
mov edx, ecx
lea eax, [ebx + ecx]
xor ecx, ecx
mov esi, 0x63b567
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 0x458fcb
mov eax, dword [esp]
mov esi, 0x63b567
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 0x458fc3
cmp cl, 0xff
jne 0x458fb8
mov ecx, dword [esp]
mov edx, 0x63b567
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 0x458ef9
mov ebx, dword [esp]
mov edi, dword [esp + 0xc]
mov edx, ecx
mov esi, 0x63b567
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 0x458fa0
jmp 0x458e55
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 0x458f73
movzx eax, al
test eax, eax
jne 0x4590e2
mov edi, dword [esp + 0xc]
jmp 0x458e55
movzx esi, cl
test esi, esi
jne 0x4591a6
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 0x4592f2
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 0x459037
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.0045486c
mov bh, byte [esp + 0x93]
mov esi, dword [esp + 0xdc]
mov bl, byte [esp + 0x92]
cmp al, 0xc
je 0x45913d
mov byte [edi + 0x1d], al
mov byte [edi + 0x1e], dl
mov edx, dword [esp + 0x1c]
jmp 0x4592a2
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.0045486c
cmp al, 0xc
je 0x45913d
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 0x459277
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.0045486c
mov esi, dword [esp + 0xdc]
cmp al, 0xc
jne 0x459258
lea eax, [esp + 0x68]
mov dword [esp + 0x50], 0x5b2ad8
lea ecx, [esp + 0x98]
lea edx, [esp + 0x50]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x9c], fcn.00442ef0
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.004ba4b9
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 0x4592b3
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.0045486c
cmp al, 0xc
jne 0x459283
lea eax, [esp + 0x68]
mov dword [esp + 0x50], 0x5b2ad8
lea ecx, [esp + 0x98]
lea edx, [esp + 0x50]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x9c], fcn.00442ef0
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.004ba4b9
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 0x4592ac
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 0x4592b3
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 0x45b2a6
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 0x459342
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 0x45934a
mov edx, dword [esp + 0x28]
cmp dword [edx + ecx*4], ebx
jg 0x459357
inc ecx
jmp 0x459331
and edi, 0x1ff
jmp 0x45937d
cmp edi, 0x2400
jge 0x459359
jmp 0x45b242
mov eax, ecx
cmp eax, 0x12
jae 0x45b33a
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 0x4593fc
cmp edi, 1
jne 0x45b105
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 0x459418
mov eax, dword [esp + 0x130]
jmp 0x45941f
mov edi, dword [ebp + 8]
mov bl, byte [esp + 0x18]
cmp edx, 0xf
mov dword [esp + 0xac], 0
je 0x45942d
jmp 0x459e2f
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 0x459441
mov bh, byte [esp + 0x2c]
jmp 0x459d8b
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 + 0x5b21e4]
and ecx, 0x3f
movzx edx, word [eax + ecx*2]
test dx, dx
je 0x45956d
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 0x459531
mov esi, edx
and esi, dword [esp + 0x80]
test si, si
jne 0x459531
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 0x459587
cmp byte [edi + 0x1d], 0xc
mov bl, byte [esp + 0x18]
jne 0x459598
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 0x4595a5
mov ebx, esi
jmp 0x459618
mov eax, dword [esp + 0x44]
test eax, eax
jle 0x459d51
mov edx, dword [esp + 0x1c]
dec eax
mov dword [esp + 0x44], eax
jmp 0x459d04
mov edx, dword [esp + 0x1c]
mov bl, byte [esp + 0x18]
mov esi, dword [esp + 0x14]
jmp 0x459d04
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
jmp 0x459cfd
xor edx, edx
cmp esi, 0xfffffffb
mov edi, esi
ja 0x4595c9
cmp eax, ecx
jb 0x4595c9
mov esi, dword [esp + 4]
mov edx, dword [esi + 0x70f0]
mov edx, dword [edx + edi]
mov dword [esi + 0x70f8], ecx
bswap edx
jmp 0x4595cb
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 0x45960b
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 0x459b42
sub ecx, 4
mov edx, 0
cmovb ecx, edx
mov ebx, ecx
mov ecx, dword [esp + 4]
mov esi, 0x63b567
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 0x459725
xor ebx, ebx
cmp eax, ecx
lea edx, [edx + ecx]
mov esi, 0x63b567
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 0x459723
mov dword [esp], ebx
mov bl, byte [esp + 0x18]
mov ah, byte [esp + 0x2c]
mov edi, dword [esp + 0x20]
cmp cl, 0xff
jne 0x459711
mov al, bl
mov ebx, dword [esp]
xor ecx, ecx
mov esi, 0x63b567
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 0x4596d4
movzx ecx, cl
test ecx, ecx
jne 0x459935
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, 0x63b567
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 0x459800
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x78]
xor edx, edx
cmp edi, ebx
mov esi, 0x63b567
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 0x459888
mov edi, dword [esp + 0x20]
jmp 0x45995d
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov edx, 0x63b567
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 0x45992e
mov dword [esp], ebx
mov ah, byte [esp + 0x2c]
mov bl, byte [esp + 0x18]
mov edi, dword [esp + 0x20]
cmp cl, 0xff
jne 0x45990a
mov al, bl
mov ebx, dword [esp]
xor ecx, ecx
mov esi, 0x63b567
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 0x459847
mov ecx, dword [esp + 0x20]
xor ebx, ebx
cmp edi, edx
mov edi, 0x63b567
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 0x459956
mov ah, byte [esp + 0x2c]
mov bl, byte [esp + 0x18]
mov edi, dword [esp + 0x20]
cmp cl, 0xff
jne 0x45991d
mov al, bl
mov ebx, dword [esp]
xor ecx, ecx
mov esi, 0x63b567
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 0x4598cd
movzx ecx, cl
test ecx, ecx
jne 0x459a7f
mov ebx, dword [esp]
jmp 0x459787
movzx ecx, cl
test ecx, ecx
jne 0x459b55
mov eax, dword [esp + 0x14]
jmp 0x45995a
mov edi, eax
jmp 0x45978b
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 0x459b7b
mov edi, dword [esp + 0x20]
mov edx, dword [esp]
mov ebx, 0x63b567
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 0x4599d4
mov edi, dword [ebp + 8]
mov bh, byte [esp + 0x2c]
mov edx, dword [esp + 0x1c]
mov bl, byte [esp + 0x18]
jmp 0x459b3e
mov edx, dword [esp + 0x20]
mov edi, 0x63b567
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 0x459b30
mov dword [esp + 0x78], esi
mov esi, dword [esp]
mov edi, dword [esp + 0x20]
cmp cl, 0xff
jne 0x459a5d
xor ecx, ecx
cmp dword [esp + 0xc], esi
lea ebx, [edi + esi]
mov edx, 0x63b567
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 0x459a26
movzx ecx, cl
mov dword [esp], esi
test ecx, ecx
jne 0x459c20
mov edi, dword [ebp + 8]
mov bh, byte [esp + 0x2c]
mov bl, byte [esp + 0x18]
mov esi, dword [esp + 0x78]
jmp 0x459b3b
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.0045486c
cmp al, 0xc
jne 0x459cd8
lea eax, [esp + 0x68]
mov dword [esp + 0x50], 0x5b2ad8
lea ecx, [esp + 0x98]
lea edx, [esp + 0x50]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x9c], fcn.00442ef0
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.004ba4b9
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 0x459bf1
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 0x459cfd
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.0045486c
cmp al, 0xc
jne 0x459c0b
lea eax, [esp + 0x68]
mov dword [esp + 0x50], 0x5b2ad8
lea ecx, [esp + 0x98]
lea edx, [esp + 0x50]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x9c], fcn.00442ef0
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.004ba4b9
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 0x459cf0
mov byte [edi + 0x1d], al
mov byte [edi + 0x1e], dl
mov cl, 0xd
mov dword [esp + 0x24], 0
jmp 0x459cf0
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.0045486c
mov bh, byte [esp + 0x2c]
mov bl, byte [esp + 0x18]
cmp al, 0xc
jne 0x459cd8
lea eax, [esp + 0x68]
mov dword [esp + 0x50], 0x5b2ad8
lea ecx, [esp + 0x98]
lea edx, [esp + 0x50]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x9c], fcn.00442ef0
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.004ba4b9
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 0x459ce8
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 0x45b2a6
mov al, byte [edi + 0x1c]
mov byte [esp + 0xc], al
cmp bl, byte [esp + 0xc]
je 0x459d11
inc bl
jmp 0x4594a0
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 0x459d8f
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 0x459db9
mov ecx, ebx
mov esi, eax
mov eax, dword [esp + 0x94]
and cl, 0x3f
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x5b21e4]
and ecx, 0x3f
mov word [eax + ecx*2], si
inc bl
cmp bl, byte [esp + 0xc]
jbe 0x458b3c
mov edi, dword [edi + 0x10]
jmp 0x457d0a
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.0045b4be
add esp, 0x10
mov al, byte [esp + 0x50]
cmp al, 0xd
jne 0x45b034
mov edx, dword [esp + 0x1c]
jmp 0x45afe6
mov byte [esp + 0x2c], bh
jmp 0x45afe2
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x2c], bh
jmp 0x45afde
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc8]
jmp 0x45a698
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 0x457d0a
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 0x45afe2
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 0x459eea
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 0x45a254
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, 0x63b567
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 0x45a00e
add eax, ecx
mov edi, 0x63b567
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 0x45a00c
cmp cl, 0xff
jne 0x459ffd
mov ecx, dword [esp + 0x28]
mov edx, 0x63b567
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 0x459fc7
mov esi, dword [esp + 0x44]
movzx ebx, cl
test ebx, ebx
jne 0x45a382
mov ecx, eax
mov eax, dword [esp + 0x28]
mov ebx, dword [esp]
mov edx, 0x63b567
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 0x45a0f5
mov ecx, dword [esp + 0x28]
mov edx, 0x63b567
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 0x45a0f0
cmp al, 0xff
jne 0x45a0e5
mov eax, dword [esp + 0x28]
mov edx, 0x63b567
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 0x45a0b0
movzx eax, al
test eax, eax
jne 0x45a457
mov edi, dword [ebp + 8]
mov eax, ecx
mov ecx, dword [esp + 0x28]
mov esi, dword [esp]
mov edx, 0x63b567
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 0x45a288
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, 0x63b567
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 0x45a24b
mov eax, dword [esp + 0x28]
mov esi, 0x63b567
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 0x45a237
jmp 0x45a247
mov ecx, dword [esp + 0x28]
mov edx, 0x63b567
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 0x45a204
movzx esi, cl
test esi, esi
jne 0x45a527
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 0x45a698
mov eax, dword [esp + 0x28]
mov edx, ecx
mov esi, 0x63b567
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 0x45a164
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 0x45a316
mov eax, dword [esp + 0x28]
mov esi, edi
mov edx, 0x63b567
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 0x45a2dd
movzx eax, al
test eax, eax
je 0x45a164
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.0045486c
cmp al, 0xc
je 0x45a3dc
mov byte [edi + 0x1d], al
mov byte [edi + 0x1e], dl
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc8]
jmp 0x45a61e
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 0x45a3be
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.0045486c
mov ah, byte [esp + 0x2c]
mov esi, dword [esp + 0xbc]
mov bl, byte [esp + 0x18]
cmp al, 0xc
jne 0x45a5df
lea eax, [esp + 0x68]
mov dword [esp + 0x50], 0x5b2ad8
lea ecx, [esp + 0x98]
lea edx, [esp + 0x50]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x9c], fcn.00442ef0
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.004ba4b9
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 0x45a657
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.0045486c
cmp al, 0xc
jne 0x45a605
lea eax, [esp + 0x68]
mov dword [esp + 0x50], 0x5b2ad8
lea ecx, [esp + 0x98]
lea edx, [esp + 0x50]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x9c], fcn.00442ef0
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.004ba4b9
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 0x45a65b
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.0045486c
cmp al, 0xc
jne 0x45a62a
lea eax, [esp + 0x68]
mov dword [esp + 0x50], 0x5b2ad8
lea ecx, [esp + 0x98]
lea edx, [esp + 0x50]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x9c], fcn.00442ef0
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.004ba4b9
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 0x45a64c
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 0x45a65b
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 0x45a65b
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 0x45b2a6
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 0x45afa7
mov eax, ebx
and al, 0x3f
movzx eax, al
mov ecx, dword [eax*4 + 0x5b21e4]
mov eax, dword [esp + 0x94]
and ecx, 0x3f
movzx edx, word [eax + ecx*2]
mov al, byte [edi + 0x18]
test dx, dx
je 0x45a79b
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 0x45a797
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x80]
mov esi, edx
and esi, ebx
test si, si
jne 0x45a797
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 0x45afa0
cmp byte [edi + 0x1d], 0xc
jne 0x45afa0
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 0x45a84d
xor edx, edx
cmp esi, 0xfffffffb
ja 0x45a7fa
cmp eax, ecx
jb 0x45a7fa
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 0x45a7fd
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 0x45a83b
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 0x45ac5f
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, 0x63b567
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 0x45a8d7
mov eax, dword [esp + 0x40]
mov edx, edi
jmp 0x45a95a
mov esi, dword [esp + 0x40]
xor edx, edx
add edi, ecx
mov eax, 0x63b567
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 0x45a943
jmp 0x45a953
mov edi, dword [esp]
mov ecx, dword [esp + 0x28]
mov esi, 0x63b567
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 0x45a90f
movzx ecx, cl
test ecx, ecx
jne 0x45ac7a
mov ecx, dword [esp]
mov edx, dword [esp + 0x28]
xor ebx, ebx
cmp eax, ecx
lea edx, [edx + ecx]
mov esi, 0x63b567
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 0x45aaa6
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x40]
xor edx, edx
cmp eax, ebx
lea ecx, [esi + ebx]
mov edi, 0x63b567
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 0x45ab49
mov ecx, dword [esp + 0x28]
xor ebx, ebx
cmp eax, edx
mov esi, 0x63b567
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 0x45ab46
mov bl, byte [esp + 0x18]
cmp cl, 0xff
jne 0x45ab3b
mov edi, dword [esp]
mov ecx, dword [esp + 0x28]
mov esi, 0x63b567
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 0x45aa67
mov eax, dword [esp + 0x28]
xor ecx, ecx
mov edi, 0x63b567
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 0x45a9c6
mov dword [esp], ebx
mov bl, byte [esp + 0x18]
cmp cl, 0xff
jne 0x45ab24
mov edi, dword [esp]
mov ecx, dword [esp + 0x28]
mov esi, 0x63b567
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 0x45aae9
movzx ecx, cl
test ecx, ecx
jne 0x45ad13
mov ebx, dword [esp]
mov esi, dword [esp + 0x28]
jmp 0x45a9c6
movzx ecx, cl
test ecx, ecx
jne 0x45adcb
mov edx, dword [esp]
mov ecx, dword [esp + 0x28]
mov ebx, 0x63b567
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 0x45abc2
mov edi, dword [ebp + 8]
mov edx, dword [esp + 0x1c]
mov bl, byte [esp + 0x18]
jmp 0x45ac5b
mov eax, dword [esp + 0x28]
xor edx, edx
mov edi, 0x63b567
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 0x45ac51
mov edi, dword [esp]
cmp cl, 0xff
jne 0x45ac43
mov ecx, dword [esp + 0x28]
mov edx, 0x63b567
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 0x45ac0a
movzx ecx, cl
mov dword [esp], edi
test ecx, ecx
jne 0x45ae83
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 0x45afa0
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.0045486c
cmp al, 0xc
jne 0x45af39
lea eax, [esp + 0x68]
mov dword [esp + 0x50], 0x5b2ad8
lea ecx, [esp + 0x98]
lea edx, [esp + 0x50]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x9c], fcn.00442ef0
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.004ba4b9
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 0x45adbe
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.0045486c
cmp al, 0xc
jne 0x45af4b
lea eax, [esp + 0x68]
mov dword [esp + 0x50], 0x5b2ad8
lea ecx, [esp + 0x98]
lea edx, [esp + 0x50]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x9c], fcn.00442ef0
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.004ba4b9
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 0x45ae71
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.0045486c
cmp al, 0xc
jne 0x45af65
lea eax, [esp + 0x68]
mov dword [esp + 0x50], 0x5b2ad8
lea ecx, [esp + 0x98]
lea edx, [esp + 0x50]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x9c], fcn.00442ef0
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.004ba4b9
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 0x45af93
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.0045486c
mov bl, byte [esp + 0x18]
cmp al, 0xc
jne 0x45af7b
lea eax, [esp + 0x68]
mov dword [esp + 0x50], 0x5b2ad8
lea ecx, [esp + 0x98]
lea edx, [esp + 0x50]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x9c], fcn.00442ef0
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.004ba4b9
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 0x45af8b
mov byte [edi + 0x1d], al
mov byte [edi + 0x1e], dl
mov cl, 0xd
mov dword [esp + 0x24], 0
jmp 0x45af93
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 0x45af75
mov cl, 0xd
mov byte [edi + 0x1d], al
mov byte [edi + 0x1e], dl
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], esi
jmp 0x45af93
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 0x45b2a6
inc bl
jmp 0x45a703
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 0x457b9d
mov dword [esp + 0x1c], edx
lea ecx, [esp + 0x50]
mov edx, ebx
push dword [ebp + 8]
call fcn.00581610
pop eax
mov al, byte [esp + 0x50]
cmp al, 0xd
jne 0x45b034
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0xfc]
jmp 0x457b9d
mov eax, dword [esp + 0x13c]
mov ebx, dword [esp + 4]
jmp 0x457b7f
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 0x45b2df
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.004379c0
inc eax
mov dword [edx + 4], eax
and dword [edx + 0x10], 0
mov dword [edx + 8], ecx
mov dword [edx + 0xc], eax
jmp 0x45b0bd
add eax, 0x108
lea edx, [esp + 0x50]
lea ecx, [esp + 0xe8]
mov dword [edx], str.Huffman_table_at_index___not_initializedl__
mov dword [edx + 4], 2
and dword [edx + 0x10], 0
mov dword [ecx], eax
mov dword [edx + 8], ecx
mov dword [ecx + 4], fcn.004379c0
mov dword [edx + 0xc], 1
lea esi, [esp + 0x34]
mov ecx, esi
call fcn.004ba4b9
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 0x45b2df
mov eax, dword [esp + 0x88]
mov byte [eax], 0xd
jmp 0x45b2df
push 0x1f
pop ebx
mov ecx, ebx
call fcn.004fda03
mov esi, eax
mov edi, edx
push 0x1f
push str.Bad_Huffman_code__corrupt_JPEG_
push eax
call fcn.00570db0
add esp, 0xc
mov al, 1
mov cl, 3
mov dword [esp + 0x24], eax
jmp 0x45b2c0
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 0x45b1e4
lea eax, [esp + 0x11c]
jmp 0x45b05d
lea eax, [esp + 0x11c]
jmp 0x45b08e
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.00442da0
mov dword [esi + 8], eax
mov dword [esi + 0xc], 1
call fcn.004ba4b9
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 0x45b2da
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 0x45b2df
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.00442da0
mov dword [edx + 8], eax
mov dword [edx + 0xc], 1
call fcn.004ba4b9
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_initializedX_
mov dword [edx + 0xc], ecx
mov dword [edx + 8], eax
jmp 0x45b2df
push 4
pop edx
push 0x5b2cdc
jmp 0x45b344
push 4
pop edx
mov ecx, dword [esp + 0x94]
push 0x5b2cbc
jmp 0x45b344
mov ecx, eax
push 0x5b2ccc
jmp 0x45b344
push 0x12
pop eax
mov ecx, edx
mov edx, eax
push 0x5b2f54
jmp 0x45b344
push 0x12
pop edx
mov ecx, eax
push 0x5b2f64
call fcn.00580e40
pop eax
ud2
push 4
pop edx
push 0x5b2c58
jmp 0x45b344
push 0x2b
pop edx
mov ecx, 0x63d47f
push 0x5b2b94
push 0x5b12bc
lea eax, [esp + 0x58]
push eax
call fcn.00581210
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 0x5b2b74
call fcn.00580f20
jmp 0x45b349