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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1ec
mov esi, edx
mov edx, dword [edx + 4]
mov eax, dword [esi + 8]
mov ebx, edx
mov ebp, dword [eax]
mov dword [esp + 0xa4], eax
sub ebx, ebp
jb 0x451fa1
mov dword [esp + 0x90], ecx
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
mov dword [esp + 0xa0], ecx
mov ecx, dword [ecx]
mov dword [esp + 0x94], eax
imul ecx, dword [eax]
test ecx, ecx
je 0x451fb2
mov eax, dword [esp + 0x200]
xor edx, edx
add ebp, dword [esi]
mov dword [esp + 0x98], eax
mov eax, ebx
div ecx
mov edi, dword [esi + 0x18]
mov eax, dword [esi + 0x14]
mov dword [esp + 0x50], 0
mov dword [esp + 0x10], ecx
sub ebx, edx
mov edx, dword [esi + 0x20]
mov dword [esp + 0x9c], edi
mov edi, dword [esi + 0x1c]
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb0], edx
mov edx, dword [esi + 0x24]
mov dword [esp + 0xac], edi
mov dword [esp + 0xa8], edx
mov eax, dword [esp + 0x98]
mov edi, dword [esp + 0x50]
sub eax, 1
jb 0x451e5d
sub ebx, ecx
jb 0x451e5d
mov dword [esp + 0x98], eax
lea eax, [ebp + ecx]
mov dword [esp + 0xbc], ebx
mov dword [esp], ebp
mov dword [esp + 0xb8], eax
lea eax, [edi + 1]
mov dword [esp + 0x50], eax
mov eax, str.assertion_failed:_mid___self.len__chunk_size_must_be_non_zero
mov dword [esp + 0x24], eax
and dword [esp + 0x28], 0
mov dword [esp + 0x2c], eax
and dword [esp + 0x30], 0
mov dword [esp + 0x34], eax
and dword [esp + 0x38], 0
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb4]
and dword [esp + 0x40], 0
mov ebx, dword [eax]
cmp ebx, 4
push 4
pop eax
cmovae ebx, eax
xor ebp, ebp
cmp ebx, ebp
je 0x450f85
mov eax, dword [esp + 0x9c]
lea esi, [ebp + 1]
mov edx, dword [eax]
mov ecx, edx
imul edx, dword [esp + 0x50]
imul ecx, edi
push 0x5b1d18
mov eax, dword [esp + 0x208]
push dword [eax + ebp*8 + 4]
push dword [eax + ebp*8]
call fcn.00451ffc
add esp, 0xc
mov dword [esp + ebp*8 + 0x24], eax
mov dword [esp + ebp*8 + 0x28], edx
mov ebp, esi
jmp 0x450f44
mov ecx, dword [esp + 0xac]
mov esi, dword [esp + 0xa8]
mov eax, dword [esp + 0xb0]
mov ch, byte [ecx]
mov cl, byte [esi + 0x10]
mov esi, dword [esp + 0x94]
mov eax, dword [eax]
mov ebx, dword [esi]
mov esi, dword [esp + 0x9c]
movzx edx, ch
mov ebp, dword [esi]
mov esi, dword [edx*4 + 0x63eaa8]
mov byte [esp + 0x22], ch
mov byte [esp + 0x23], cl
cmp esi, 4
je 0x451268
cmp esi, 3
jne 0x451453
cmp ch, cl
jne 0x451453
mov edx, dword [esp]
lea edi, [esp + 0x54]
lea eax, [ebx + ebx*2]
mov ecx, edi
push 0x63e528
push eax
push dword [esp + 0x18]
call fcn.0056c5ab
add esp, 0xc
mov edx, dword [esp + 0x24]
lea esi, [esp + 0xd8]
mov ecx, esi
push 0x63e538
push ebp
push dword [esp + 0x30]
call fcn.0056c607
add esp, 0xc
lea ebx, [esp + 0x14c]
mov edx, edi
mov ecx, ebx
push esi
call fcn.005686fb
pop eax
mov edx, dword [esp + 0x2c]
mov ecx, edi
push 0x63e548
push ebp
push dword [esp + 0x38]
call fcn.0056c607
add esp, 0xc
mov ecx, esi
mov edx, ebx
push edi
call fcn.00568765
pop eax
mov edx, dword [esp + 0x34]
mov ecx, edi
push 0x63e558
push ebp
push dword [esp + 0x40]
call fcn.0056c607
add esp, 0xc
mov ecx, ebx
mov edx, esi
push edi
call fcn.005687ba
pop eax
mov eax, dword [esp + 0x190]
mov edx, dword [esp + 0x194]
mov ecx, dword [esp + 0x1b4]
mov edi, dword [esp + 0x1b0]
mov ebx, dword [esp + 0x154]
mov ebp, dword [esp + 0x15c]
mov dword [esp + 0x14], eax
add eax, eax
mov dword [esp + 8], edx
add edx, ecx
mov esi, ecx
imul edx, eax
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x160]
imul esi, edi
add esi, esi
add edx, dword [esp + 0x180]
add esi, dword [esp + 0x1a0]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x170]
mov dword [esp], edx
xor edx, edx
mov dword [esp + 4], esi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x1b8]
mov dword [esp + 0x18], eax
mov eax, ebp
push 3
pop esi
div esi
mov dword [esp + 0x48], ebp
lea eax, [edi + edi]
mov dword [esp + 0x4c], edi
mov dword [esp + 0xc4], ebx
sub ebp, edx
mov dword [esp + 0xd0], edx
mov dword [esp + 0xc0], eax
mov dword [esp + 0xcc], ebp
cmp ecx, dword [esp + 0x18]
jae 0x4517bd
test ebx, ebx
je 0x4517bd
lea eax, [ecx + 1]
add ecx, dword [esp + 8]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x44]
mov dword [esp + 0xc], eax
add ecx, dword [esp + 0xd4]
mov eax, ecx
imul ecx, edi
imul eax, dword [esp + 0x48]
lea esi, [edx + ecx*2]
mov ecx, dword [esp + 0xcc]
lea edx, [esp + 0xd8]
add eax, ebx
mov dword [esp + 0xe0], eax
add eax, ecx
mov dword [esp + 0xe4], ecx
lea ecx, [esp + 0x14c]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0xdc], eax
lea eax, [esi + edi*2]
mov dword [esp + 0xe8], 3
push eax
push esi
call fcn.005684eb
pop eax
pop ecx
mov esi, dword [esp + 0x168]
mov edx, dword [esp + 0x16c]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x15c]
mov eax, dword [esp + 0x154]
sub edx, esi
lea ebp, [esi + esi]
cmp edx, edi
cmovae edx, edi
mov edi, dword [esp + 0x4c]
add ebp, dword [esp + 0x160]
cmp edx, edi
cmovae edx, edi
imul esi, ecx
xor edi, edi
lea esi, [eax + esi + 2]
cmp edx, edi
je 0x451240
test eax, eax
je 0x451240
test ecx, ecx
je 0x451ec7
mov bl, byte [ebp + edi*2]
cmp ecx, 1
mov byte [esi - 2], bl
je 0x451ed2
mov ebx, dword [esp]
cmp ecx, 2
mov bl, byte [ebx + edi*2]
mov byte [esi - 1], bl
jbe 0x451ede
mov ebx, dword [esp + 4]
mov bl, byte [ebx + edi*2]
inc edi
mov byte [esi], bl
add esi, ecx
jmp 0x451200
mov ecx, dword [esp]
mov eax, dword [esp + 0xc0]
mov ebx, dword [esp + 0xc4]
add ecx, dword [esp + 0xc8]
add dword [esp + 4], eax
mov dword [esp], ecx
mov ecx, dword [esp + 0xc]
jmp 0x451131
cmp ch, cl
jne 0x451453
mov edx, dword [esp]
lea edi, [esp + 0x54]
shl ebx, 2
mov ecx, edi
push 0x63e598
push ebx
push dword [esp + 0x18]
call fcn.0056c5ab
add esp, 0xc
mov edx, dword [esp + 0x24]
lea ebx, [esp + 0x14c]
mov ecx, ebx
push 0x63e5a8
push ebp
push dword [esp + 0x30]
call fcn.0056c607
add esp, 0xc
lea esi, [esp + 0xd8]
mov edx, edi
mov ecx, esi
push ebx
call fcn.005686fb
pop eax
mov edx, dword [esp + 0x2c]
mov ecx, edi
push 0x63e5b8
push ebp
push dword [esp + 0x38]
call fcn.0056c607
add esp, 0xc
mov ecx, ebx
mov edx, esi
push edi
call fcn.00568765
pop eax
mov edx, dword [esp + 0x34]
mov ecx, edi
push 0x63e5c8
push ebp
push dword [esp + 0x40]
call fcn.0056c607
add esp, 0xc
mov ecx, esi
mov edx, ebx
push edi
call fcn.005687ba
pop eax
mov edx, dword [esp + 0x3c]
mov ecx, edi
push 0x63e5d8
push ebp
push dword [esp + 0x48]
call fcn.0056c607
add esp, 0xc
mov ecx, ebx
mov edx, esi
push edi
call fcn.00568645
pop eax
lea ecx, [esp + 0x54]
lea edx, [esp + 0x14c]
call fcn.0056c664
mov ecx, dword [esp + 0x54]
test ecx, ecx
je 0x4517bd
mov edi, dword [esp + 0x64]
mov esi, dword [esp + 0x58]
mov dword [esp + 0x84], ecx
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov ebp, dword [esp + 0x68]
mov ebx, dword [esp + 0x70]
mov dword [esp], edi
mov edi, esi
and esi, 0xfffffffc
add ecx, esi
mov dword [esp + 0x88], esi
mov esi, dword [esp + 0x6c]
and edi, 3
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x80], edi
mov edi, dword [esp + 0x78]
mov dword [esp + 0x8c], 4
mov dword [esp + 4], esi
lea esi, [eax + edx*2]
lea edx, [esp + 0x7c]
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0xd8]
push esi
push eax
call fcn.005684eb
pop eax
pop ecx
mov esi, dword [esp + 0xf4]
mov edx, dword [esp + 0xf8]
mov ecx, dword [esp + 0xe8]
mov eax, dword [esp + 0xe0]
sub edx, esi
cmp edx, ebp
cmovae edx, ebp
lea ebp, [esi + esi]
add ebp, dword [esp + 0xec]
cmp edx, ebx
cmovae edx, ebx
cmp edx, edi
cmovae edx, edi
imul esi, ecx
xor edi, edi
lea esi, [eax + esi + 3]
cmp edx, edi
je 0x451328
test eax, eax
je 0x451328
test ecx, ecx
je 0x451e72
mov bl, byte [ebp + edi*2]
cmp ecx, 1
mov byte [esi - 3], bl
je 0x451e80
mov ebx, dword [esp]
cmp ecx, 2
mov bl, byte [ebx + edi*2]
mov byte [esi - 2], bl
jbe 0x451e8c
mov ebx, dword [esp + 4]
cmp ecx, 3
mov bl, byte [ebx + edi*2]
mov byte [esi - 1], bl
je 0x451e98
mov ebx, dword [esp + 0xc]
mov bl, byte [ebx + edi*2]
inc edi
mov byte [esi], bl
add esi, ecx
jmp 0x4513f8
cmp cl, 3
jne 0x451517
and ch, 0xe
cmp ch, 2
jne 0x451517
mov edx, dword [esp + 0x24]
lea edi, [esp + 0x54]
mov ecx, edi
push 0x63d7a0
push ebp
push dword [esp + 0x30]
call fcn.0056c607
add esp, 0xc
mov edx, dword [esp]
lea esi, [esp + 0xd8]
mov ecx, esi
push 0x63d7b0
push ebx
push dword [esp + 0x18]
call fcn.0056c5ab
add esp, 0xc
mov edx, edi
lea ecx, [esp + 0x14c]
push esi
call fcn.005685b7
pop eax
mov edx, dword [esp + 0x174]
mov eax, dword [esp + 0x15c]
mov ebp, dword [esp + 0x170]
mov ecx, dword [esp + 0x178]
mov ebx, edx
mov edi, edx
mov dword [esp], ecx
mov dword [esp + 4], ebp
imul ebx, eax
imul edi, ebp
add ebx, ebx
add edi, dword [esp + 0x168]
add ebx, dword [esp + 0x14c]
cmp eax, ebp
cmovb ebp, eax
add eax, eax
cmp edx, dword [esp]
jae 0x4517bd
xor esi, esi
cmp ebp, esi
je 0x45150e
mov cl, byte [ebx + esi*2]
mov byte [edi + esi], cl
inc esi
jmp 0x451501
add edi, dword [esp + 4]
inc edx
add ebx, eax
jmp 0x4514f6
movzx edi, cl
cmp edx, 2
je 0x45178d
cmp edx, 5
je 0x4517f0
cmp edx, 6
jne 0x451f13
test cl, cl
je 0x451a0a
cmp edi, 1
jne 0x451f13
mov edx, dword [esp]
lea edi, [esp + 0x54]
shl ebx, 2
mov ecx, edi
push 0x63e678
push ebx
push dword [esp + 0x18]
call fcn.0056c5ab
add esp, 0xc
mov edx, dword [esp + 0x24]
lea ebx, [esp + 0x14c]
mov ecx, ebx
push 0x63e688
push ebp
push dword [esp + 0x30]
call fcn.0056c607
add esp, 0xc
lea esi, [esp + 0xd8]
mov edx, edi
mov ecx, esi
push ebx
call fcn.005686fb
pop eax
mov edx, dword [esp + 0x2c]
mov ecx, edi
push 0x63e698
push ebp
push dword [esp + 0x38]
call fcn.0056c607
add esp, 0xc
mov ecx, ebx
mov edx, esi
push edi
call fcn.00568765
pop eax
mov edx, dword [esp + 0x34]
mov ecx, edi
push 0x63e6a8
push ebp
push dword [esp + 0x40]
call fcn.0056c607
add esp, 0xc
mov ecx, esi
mov edx, ebx
push edi
call fcn.005687ba
pop eax
mov edx, dword [esp + 0x3c]
mov ecx, edi
push 0x63e6b8
push ebp
push dword [esp + 0x48]
call fcn.0056c607
add esp, 0xc
mov ecx, ebx
mov edx, esi
push edi
call fcn.00568645
pop eax
lea ecx, [esp + 0x54]
lea edx, [esp + 0x14c]
call fcn.0056c664
mov ebp, dword [esp + 0x54]
test ebp, ebp
je 0x4517bd
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x68]
xor edx, edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov eax, ecx
push 3
pop edi
div edi
mov eax, dword [esp + 8]
mov dword [esp + 0x84], ebp
sub ecx, edx
add ebp, ecx
mov dword [esp + 0x88], ecx
lea ecx, [esp + 0xd8]
mov dword [esp + 0x7c], ebp
xor ebp, ebp
mov dword [esp + 0x80], edx
mov dword [esp + 0x8c], 3
lea edx, [esp + 0x7c]
lea eax, [ebx + eax*2]
push eax
push ebx
call fcn.005684eb
pop eax
pop ecx
mov ebx, dword [esp + 0xf4]
mov edx, dword [esp + 0xf8]
mov edi, dword [esp]
mov ecx, dword [esp + 0xe8]
mov eax, dword [esp + 0xe0]
sub edx, ebx
cmp edx, esi
cmovae edx, esi
lea esi, [ebx + ebx]
add esi, dword [esp + 0xec]
mov dword [esp + 8], esi
mov esi, dword [esp + 4]
mov dword [esp + 4], eax
cmp edx, esi
cmovae edx, esi
cmp edx, edi
cmovae edx, edi
imul ebx, ecx
lea edi, [eax + ebx + 2]
mov dword [esp], edx
cmp dword [esp], ebp
je 0x4515fe
cmp dword [esp + 4], 0
je 0x4515fe
test ecx, ecx
je 0x451ea4
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
movzx ebx, byte [eax + ebp*2]
mov eax, dword [esp + 0x14]
movzx esi, byte [edx + ebp*2]
movzx eax, byte [eax + ebp*2]
imul esi, eax
lea edx, [esi + 0x80]
shr edx, 8
cmp ecx, 1
lea edx, [edx + esi + 0x80]
mov esi, dword [esp + 0xc]
movzx esi, byte [esi + ebp*2]
mov byte [edi - 2], dh
je 0x451eaf
movzx eax, ax
imul esi, eax
lea edx, [esi + 0x80]
shr edx, 8
cmp ecx, 2
lea edx, [edx + esi + 0x80]
mov byte [edi - 1], dh
jbe 0x451ebb
imul eax, ebx
inc ebp
lea edx, [eax + 0x80]
shr edx, 8
lea eax, [edx + eax + 0x80]
mov byte [edi], ah
add edi, ecx
jmp 0x4516f3
cmp edi, 8
ja 0x451f13
mov ecx, 0x183
bt ecx, edi
jae 0x451f13
lea ecx, [esp + 0x24]
mov edx, ebx
push dword [esp + 0x10]
push dword [esp + 4]
push eax
push edi
push ebp
call fcn.0056c742
add esp, 0x14
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x94]
mov ebx, dword [esp + 0xbc]
mov ebp, dword [esp + 0xb8]
mov eax, dword [eax]
imul eax, dword [ecx]
mov ecx, dword [esp + 0xa4]
add dword [ecx], eax
mov ecx, dword [esp + 0x10]
jmp 0x450ec8
test edi, edi
je 0x451c51
cmp edi, 1
jne 0x451f13
mov esi, dword [esp + 0x10]
mov edx, ebx
lea ecx, [esp + 0x24]
push esi
mov edi, ebx
mov ebx, dword [esp + 4]
push ebx
push eax
push 1
push ebp
call fcn.0056c742
add esp, 0x14
lea eax, [edi + edi*2]
lea edi, [esp + 0x54]
mov edx, ebx
mov ecx, edi
push 0x63e628
push eax
push esi
call fcn.0056c5ab
add esp, 0xc
mov edx, dword [esp + 0x3c]
lea esi, [esp + 0xd8]
mov ecx, esi
push 0x63e638
push ebp
push dword [esp + 0x48]
call fcn.0056c607
add esp, 0xc
mov edx, edi
lea ecx, [esp + 0x14c]
push esi
call fcn.005686fb
pop eax
mov eax, dword [esp + 0x160]
mov ecx, dword [esp + 0x15c]
mov edx, dword [esp + 0x154]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x170]
mov esi, ecx
mov dword [esp + 0x14], ecx
and ecx, 0xfffffffc
mov dword [esp + 0x1c], edx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x178]
and esi, 3
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 0x18], ecx
cmp eax, dword [esp + 0x18]
jae 0x4517bd
test edx, edx
je 0x4517bd
lea ecx, [eax + 1]
mov esi, dword [esp + 0x4c]
mov dword [esp + 0xc], ecx
mov ecx, eax
imul ecx, dword [esp + 0x14]
imul eax, esi
add ecx, edx
mov edx, dword [esp + 8]
mov dword [esp + 0xe0], ecx
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x44]
lea esi, [eax + esi*2]
add ecx, edx
mov dword [esp + 0xe4], edx
lea edx, [esp + 0xd8]
mov dword [esp + 0xd8], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0xdc], ecx
lea ecx, [esp + 0x14c]
mov dword [esp + 0xe8], 4
push esi
push eax
call fcn.005684eb
pop eax
pop ecx
mov edi, dword [esp + 0x16c]
mov esi, dword [esp + 0x168]
mov ecx, dword [esp + 0x15c]
mov eax, dword [esp + 0x154]
mov edx, dword [esp + 0x160]
mov dword [esp], edi
mov edi, esi
mov ebp, eax
mov dword [esp + 4], edx
imul edi, ecx
lea edi, [eax + edi + 2]
cmp esi, dword [esp]
jae 0x4519fd
test ebp, ebp
je 0x4519fd
test ecx, ecx
je 0x451eea
mov eax, dword [esp + 4]
movzx edx, byte [edi - 2]
movzx ebx, byte [eax + esi*2]
xor edx, 0xff
imul edx, ebx
lea eax, [edx + 0x80]
shr eax, 8
cmp ecx, 1
lea eax, [eax + edx + 0x80]
mov byte [edi - 2], ah
je 0x451ef5
movzx eax, byte [edi - 1]
xor eax, 0xff
imul eax, ebx
lea edx, [eax + 0x80]
shr edx, 8
cmp ecx, 2
lea eax, [edx + eax + 0x80]
mov byte [edi - 1], ah
jbe 0x451f01
movzx eax, byte [edi]
inc esi
xor eax, 0xff
imul eax, ebx
lea edx, [eax + 0x80]
shr edx, 8
lea eax, [edx + eax + 0x80]
mov byte [edi], ah
add edi, ecx
jmp 0x451966
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x1c]
jmp 0x4518b6
mov edx, dword [esp]
lea edi, [esp + 0x54]
lea eax, [ebx + ebx*2]
mov ecx, edi
push 0x63e678
push eax
push dword [esp + 0x18]
call fcn.0056c5ab
add esp, 0xc
mov edx, dword [esp + 0x24]
lea ebx, [esp + 0x14c]
mov ecx, ebx
push 0x63e688
push ebp
push dword [esp + 0x30]
call fcn.0056c607
add esp, 0xc
lea esi, [esp + 0xd8]
mov edx, edi
mov ecx, esi
push ebx
call fcn.005686fb
pop eax
mov edx, dword [esp + 0x2c]
mov ecx, edi
push 0x63e698
push ebp
push dword [esp + 0x38]
call fcn.0056c607
add esp, 0xc
mov ecx, ebx
mov edx, esi
push edi
call fcn.00568765
pop eax
mov edx, dword [esp + 0x34]
mov ecx, edi
push 0x63e6a8
push ebp
push dword [esp + 0x40]
call fcn.0056c607
add esp, 0xc
mov ecx, esi
mov edx, ebx
push edi
call fcn.005687ba
pop eax
mov edx, dword [esp + 0x3c]
mov ecx, edi
push 0x63e6b8
push ebp
push dword [esp + 0x48]
call fcn.0056c607
add esp, 0xc
mov ecx, ebx
mov edx, esi
push edi
call fcn.00568645
pop eax
lea ecx, [esp + 0x54]
lea edx, [esp + 0x14c]
call fcn.0056c664
mov ebp, dword [esp + 0x54]
test ebp, ebp
je 0x4517bd
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x68]
xor edx, edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov eax, ecx
push 3
pop edi
div edi
mov eax, dword [esp + 8]
mov dword [esp + 0x84], ebp
sub ecx, edx
add ebp, ecx
mov dword [esp + 0x88], ecx
lea ecx, [esp + 0xd8]
mov dword [esp + 0x7c], ebp
xor ebp, ebp
mov dword [esp + 0x80], edx
mov dword [esp + 0x8c], 3
lea edx, [esp + 0x7c]
lea eax, [ebx + eax*2]
push eax
push ebx
call fcn.005684eb
pop eax
pop ecx
mov ebx, dword [esp + 0xf4]
mov edx, dword [esp + 0xf8]
mov edi, dword [esp]
mov ecx, dword [esp + 0xe8]
mov eax, dword [esp + 0xe0]
sub edx, ebx
cmp edx, esi
cmovae edx, esi
lea esi, [ebx + ebx]
add esi, dword [esp + 0xec]
mov dword [esp + 8], esi
mov esi, dword [esp + 4]
mov dword [esp + 4], eax
cmp edx, esi
cmovae edx, esi
cmp edx, edi
cmovae edx, edi
imul ebx, ecx
lea edi, [eax + ebx + 2]
mov dword [esp], edx
cmp dword [esp], ebp
je 0x451ac2
cmp dword [esp + 4], 0
je 0x451ac2
test ecx, ecx
je 0x451ea4
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
movzx ebx, byte [eax + ebp*2]
mov eax, dword [esp + 0x14]
movzx esi, byte [edx + ebp*2]
movzx eax, byte [eax + ebp*2]
imul esi, eax
lea edx, [esi + 0x80]
shr edx, 8
cmp ecx, 1
lea edx, [edx + esi + 0x80]
mov esi, dword [esp + 0xc]
movzx esi, byte [esi + ebp*2]
mov byte [edi - 2], dh
je 0x451eaf
movzx eax, ax
imul esi, eax
lea edx, [esi + 0x80]
shr edx, 8
cmp ecx, 2
lea edx, [edx + esi + 0x80]
mov byte [edi - 1], dh
jbe 0x451ebb
imul eax, ebx
inc ebp
lea edx, [eax + 0x80]
shr edx, 8
lea eax, [edx + eax + 0x80]
mov byte [edi], ah
add edi, ecx
jmp 0x451bb7
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x24]
mov edx, ebx
push esi
mov edi, ebx
mov ebx, dword [esp + 4]
push ebx
push eax
push 0
push ebp
call fcn.0056c742
add esp, 0x14
lea eax, [edi + edi*2]
lea edi, [esp + 0x54]
mov edx, ebx
mov ecx, edi
push 0x63e628
push eax
push esi
call fcn.0056c5ab
add esp, 0xc
mov edx, dword [esp + 0x3c]
lea esi, [esp + 0xd8]
mov ecx, esi
push 0x63e638
push ebp
push dword [esp + 0x48]
call fcn.0056c607
add esp, 0xc
lea ecx, [esp + 0x14c]
mov edx, edi
push esi
call fcn.005686fb
pop eax
mov eax, dword [esp + 0x160]
mov edi, dword [esp + 0x154]
mov ecx, dword [esp + 0x174]
mov ebx, dword [esp + 0x15c]
xor edx, edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x170]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x178]
mov dword [esp + 0x18], eax
mov eax, ebx
push 3
pop esi
div esi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], edi
sub ebx, edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], ebx
cmp ecx, dword [esp + 0x18]
jae 0x4517bd
test edi, edi
je 0x4517bd
lea eax, [ecx + 1]
mov edx, dword [esp + 8]
mov dword [esp + 0xc], eax
mov eax, ecx
imul eax, dword [esp + 0x14]
add eax, edi
mov edi, dword [esp + 0x4c]
mov dword [esp + 0xe0], eax
imul ecx, edi
lea esi, [edx + ecx*2]
mov ecx, dword [esp + 0x44]
lea edx, [esp + 0xd8]
add eax, ecx
mov dword [esp + 0xe4], ecx
lea ecx, [esp + 0x14c]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xdc], eax
lea eax, [esi + edi*2]
mov dword [esp + 0xe8], 3
push eax
push esi
call fcn.005684eb
pop eax
pop ecx
mov esi, dword [esp + 0x16c]
mov edi, dword [esp + 0x168]
mov ecx, dword [esp + 0x15c]
mov eax, dword [esp + 0x154]
mov edx, dword [esp + 0x160]
mov dword [esp], esi
mov esi, edi
mov ebp, eax
mov dword [esp + 4], edx
imul esi, ecx
lea ebx, [eax + esi + 2]
cmp edi, dword [esp]
jae 0x451e50
test ebp, ebp
je 0x451e50
test ecx, ecx
je 0x451eea
mov eax, dword [esp + 4]
movzx edx, byte [ebx - 2]
movzx esi, byte [eax + edi*2]
xor edx, 0xff
imul edx, esi
lea eax, [edx + 0x80]
shr eax, 8
cmp ecx, 1
lea eax, [eax + edx + 0x80]
mov byte [ebx - 2], ah
je 0x451ef5
movzx eax, byte [ebx - 1]
xor eax, 0xff
imul eax, esi
lea edx, [eax + 0x80]
shr edx, 8
cmp ecx, 2
lea eax, [edx + eax + 0x80]
mov byte [ebx - 1], ah
jbe 0x451f01
movzx eax, byte [ebx]
inc edi
xor eax, 0xff
imul eax, esi
lea edx, [eax + 0x80]
shr edx, 8
lea eax, [edx + eax + 0x80]
mov byte [ebx], ah
add ebx, ecx
jmp 0x451db9
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x1c]
jmp 0x451d09
mov eax, dword [esp + 0x90]
mov byte [eax], 0xd
add esp, 0x1ec
pop esi
pop edi
pop ebx
pop ebp
ret
xor ecx, ecx
xor edx, edx
push 0x63e5e8
jmp 0x451f0b
xor ecx, ecx
inc ecx
mov edx, ecx
push 0x63e5f8
jmp 0x451f0b
push 2
pop ecx
mov edx, ecx
push 0x63e608
jmp 0x451f0b
push 3
pop ecx
mov edx, ecx
push 0x63e618
jmp 0x451f0b
xor ecx, ecx
xor edx, edx
push 0x63e6c8
jmp 0x451f0b
xor ecx, ecx
inc ecx
mov edx, ecx
push 0x63e6d8
jmp 0x451f0b
push 2
pop ecx
mov edx, ecx
push 0x63e6e8
jmp 0x451f0b
xor ecx, ecx
xor edx, edx
push 0x63e568
jmp 0x451f0b
xor ecx, ecx
inc ecx
mov edx, ecx
push 0x63e578
jmp 0x451f0b
push 2
pop ecx
mov edx, ecx
push 0x63e588
jmp 0x451f0b
xor ecx, ecx
xor edx, edx
push 0x63e648
jmp 0x451f0b
xor ecx, ecx
inc ecx
mov edx, ecx
push 0x63e658
jmp 0x451f0b
push 2
pop ecx
mov edx, ecx
push 0x63e668
call fcn.00580e40
pop eax
ud2
lea eax, [esp + 0x22]
lea esi, [esp + 0x14c]
lea ecx, [esp + 0x23]
mov dword [esp + 0xd8], eax
mov eax, 0x56c71c
mov dword [esi], str.Unimplemented_colorspace_mapping_from__to
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xe4], eax
push 2
pop eax
mov dword [esi + 4], eax
and dword [esi + 0x10], 0
lea ecx, [esp + 0xd8]
lea edi, [esp + 0x1e0]
mov edx, esi
mov dword [esi + 8], ecx
mov ecx, edi
mov dword [esi + 0xc], eax
call fcn.00413050
mov eax, dword [edi + 8]
movsd xmm0, qword [edi]
mov dword [esi + 0xb], eax
movsd qword [esi + 3], xmm0
mov eax, dword [esp + 0x90]
movsd xmm0, qword [esi + 7]
movsd xmm1, qword [esi]
movsd qword [eax + 8], xmm0
movsd qword [eax + 1], xmm1
mov byte [eax], 0
jmp 0x451e67
mov ecx, ebp
push 0x5b1cf8
call fcn.00580dd0
jmp 0x451f10
lea ecx, [esp + 0x14c]
mov edx, 0x5b1d08
mov dword [ecx], 0x63d44c
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], str.assertion_failed:_mid___self.len__chunk_size_must_be_non_zero
and dword [ecx + 0xc], 0
call fcn.00580da0
ud2