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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x55b50b
mov eax, dword fs:[0]
push eax
sub esp, 0x108
push ebx
push esi
push edi
mov eax, dword [str.._AVCInvalidArgException__]
xor eax, esp
push eax
lea eax, [esp + 0x118]
mov dword fs:[0], eax
mov edi, ecx
push edi
call fcn.00452a80
mov dword [edi + 0x468], eax
call dword [0x55e68c]
push eax
call dword [0x55e5a4]
mov esi, eax
test esi, esi
je 0x451c69
push 0xc
push esi
call dword [0x55e12c]
push esi
mov ebx, eax
call dword [0x55e68c]
push eax
call dword [0x55e5a8]
dec ebx
mov eax, 7
cmp eax, ebx
sbb esi, esi
inc esi
jmp 0x451c6b
xor esi, esi
mov ebx, edi
call fcn.00451490
mov eax, edi
call fcn.004514d0
call fcn.00452730
test esi, esi
je 0x451c9d
call fcn.004516b0
mov ecx, dword [esp + 0x118]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 5
mov edx, 0xf
mov ecx, 0xd
mov esi, 0x46
mov ebx, 0x1e
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x58], ecx
mov ecx, 0x10
mov dword [esp + 0x5c], eax
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], esi
mov dword [esp + 0x8c], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], esi
mov esi, 0x2e
mov dword [esp + 0xc0], edx
mov dword [esp + 0xcc], eax
mov eax, 0x5a
mov dword [esp + 0xd8], edx
lea edx, [esp + 0x38]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x40], 0xa5
mov dword [esp + 0x44], 0x1f
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], 0x21
mov dword [esp + 0x60], 0x32
mov dword [esp + 0x64], 0x29
mov dword [esp + 0x70], 0x8f
mov dword [esp + 0x74], 0x23
mov dword [esp + 0x78], 0x11
mov dword [esp + 0x84], 0x26
mov dword [esp + 0x88], ecx
mov dword [esp + 0x90], 0x4b
mov dword [esp + 0x94], 0x27
mov dword [esp + 0x98], ecx
mov dword [esp + 0xa4], 0x2b
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], 0x14
mov dword [esp + 0xb4], 0x3d
mov dword [esp + 0xb8], esi
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc4], 0x28
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], 0x2a
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xe0], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], 0xb
jmp 0x451e16
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 4]
cmp eax, 0x3e
jbe 0x451e22
mov esi, eax
jmp 0x451e39
mov ecx, dword [edi + eax*4 + 0x268]
cmp ecx, 0xffffffff
jne 0x451e37
mov esi, dword [edi + eax*4 + 0x16c]
jmp 0x451e39
mov esi, ecx
mov eax, dword [edx]
cmp eax, 0x3e
ja 0x451e57
mov ecx, dword [edi + eax*4 + 0x268]
cmp ecx, 0xffffffff
jne 0x451e55
mov eax, dword [edi + eax*4 + 0x16c]
jmp 0x451e57
mov eax, ecx
mov ecx, dword [esp + 0x14]
push esi
mov esi, dword [ecx + 8]
push eax
call fcn.004513c0
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx - 4]
add ecx, 0x10
sub dword [esp + 0x18], 1
mov dword [edi + edx*4 + 0x16c], eax
mov dword [esp + 0x14], ecx
jne 0x451e12
mov eax, 0x64
mov edx, 0x29
mov dword [esp + 0x50], eax
mov dword [esp + 0x68], edx
mov dword [esp + 0x80], eax
mov dword [esp + 0xa8], edx
mov dword [esp + 0xb0], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xd8], edx
mov eax, 0x28
mov edx, 0x2d
mov dword [esp + 0xc4], eax
mov dword [esp + 0xcc], eax
mov eax, 0x2c
mov dword [esp + 0xe4], edx
mov dword [esp + 0xec], edx
mov edx, 0x2e
mov ecx, 0x21
mov esi, 0x1f
mov dword [esp + 0x38], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xf8], ebx
mov ebx, dword [edi + 0x2e0]
mov dword [esp + 0xd4], eax
mov dword [esp + 0xdc], eax
mov eax, 0xb4
mov dword [esp + 0xf4], edx
mov dword [esp + 0xfc], edx
mov edx, 0x2f
mov dword [esp + 0x34], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], 0x32
mov dword [esp + 0x44], 0x20
mov dword [esp + 0x4c], 0xd
mov dword [esp + 0x54], ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x64], 0x23
mov dword [esp + 0x6c], 0x23
mov dword [esp + 0x70], 0x50
mov dword [esp + 0x74], 0x25
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], 0x25
mov dword [esp + 0x84], 0x26
mov dword [esp + 0x8c], 0x26
mov dword [esp + 0x90], 0x55
mov dword [esp + 0x94], 0x27
mov dword [esp + 0x9c], 0x27
mov dword [esp + 0xa0], 0x32
mov dword [esp + 0xa4], 0x2b
mov dword [esp + 0xac], 0x2b
mov dword [esp + 0xb4], 0x3d
mov dword [esp + 0xbc], 0x3d
mov dword [esp + 0xd0], 0x50
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe8], esi
mov dword [esp + 0xf0], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], edx
mov dword [esp + 0x108], ecx
mov dword [esp + 0x10c], edx
mov dword [esp + 0x110], eax
cmp ebx, 0xffffffff
jne 0x452061
mov ecx, dword [edi + 0x1e4]
jmp 0x452063
mov ecx, ebx
mov eax, dword [edi + 0x2a4]
cmp eax, 0xffffffff
jne 0x452074
mov eax, dword [edi + 0x1a8]
fld dword [0x58e2a4]
push ecx
fstp dword [esp]
push ecx
mov esi, eax
call fcn.00450bf0
test eax, eax
je 0x4520bf
cmp ebx, 0xffffffff
jne 0x452095
mov ebx, dword [edi + 0x1e4]
mov ecx, dword [edi + 0x2a4]
cmp ecx, 0xffffffff
jne 0x4520a6
mov ecx, dword [edi + 0x1a8]
fld dword [0x58e2a4]
push ecx
mov eax, ebx
fstp dword [esp]
mov ebx, ecx
call fcn.00451100
mov dword [edi + 0x1e4], eax
lea edx, [esp + 0x38]
mov dword [esp + 0x14], edx
mov dword [esp + 0x20], 0xe
jmp 0x4520d5
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 4]
cmp eax, 0x3e
ja 0x4520f4
mov ecx, dword [edi + eax*4 + 0x268]
cmp ecx, 0xffffffff
jne 0x4520f2
mov eax, dword [edi + eax*4 + 0x16c]
jmp 0x4520f4
mov eax, ecx
mov ebx, dword [edx]
cmp ebx, 0x3e
jbe 0x4520ff
mov esi, ebx
jmp 0x452112
mov esi, dword [edi + ebx*4 + 0x268]
cmp esi, 0xffffffff
jne 0x452112
mov esi, dword [edi + ebx*4 + 0x16c]
mov ecx, dword [esp + 0x14]
fild dword [ecx + 8]
push ecx
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [esp]
push eax
call fcn.00450bf0
test eax, eax
jne 0x452186
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 4]
cmp eax, 0x3e
ja 0x452152
mov ecx, dword [edi + eax*4 + 0x268]
cmp ecx, 0xffffffff
jne 0x452150
mov eax, dword [edi + eax*4 + 0x16c]
jmp 0x452152
mov eax, ecx
cmp ebx, 0x3e
ja 0x45216e
mov ecx, dword [edi + ebx*4 + 0x268]
cmp ecx, 0xffffffff
jne 0x45216c
mov ebx, dword [edi + ebx*4 + 0x16c]
jmp 0x45216e
mov ebx, ecx
fld dword [esp + 0x18]
push ecx
fstp dword [esp]
push ebx
call fcn.00450c90
mov edx, dword [esi - 4]
mov dword [edi + edx*4 + 0x16c], eax
add dword [esp + 0x14], 0x10
sub dword [esp + 0x20], 1
jne 0x4520d1
mov eax, dword [edi + 0x2f4]
cmp eax, 0xffffffff
jne 0x4521a7
mov eax, dword [edi + 0x1f8]
mov ebx, dword [edi + 0x30c]
cmp ebx, 0xffffffff
jne 0x4521ba
mov esi, dword [edi + 0x210]
jmp 0x4521bc
mov esi, ebx
fld dword [0x58e2a0]
push ecx
fstp dword [esp]
push eax
call fcn.00450bf0
test eax, eax
je 0x452201
mov eax, dword [edi + 0x2f4]
cmp eax, 0xffffffff
jne 0x4521e1
mov eax, dword [edi + 0x1f8]
cmp ebx, 0xffffffff
jne 0x4521ec
mov ebx, dword [edi + 0x210]
fld dword [0x58e2a0]
push ecx
fstp dword [esp]
call fcn.00451100
mov dword [edi + 0x1f8], eax
mov esi, dword [edi + 0x27c]
cmp esi, 0xffffffff
jne 0x452218
mov eax, dword [edi + 0x180]
mov dword [esp + 0x1c], eax
jmp 0x45221c
mov dword [esp + 0x1c], esi
mov ebx, dword [edi + 0x29c]
cmp ebx, 0xffffffff
jne 0x452233
mov ecx, dword [edi + 0x1a0]
mov dword [esp + 0x10], ecx
jmp 0x452237
mov dword [esp + 0x10], ebx
mov eax, dword [edi + 0x2e0]
cmp eax, 0xffffffff
jne 0x45224e
mov edx, dword [edi + 0x1e4]
mov dword [esp + 0x24], edx
jmp 0x452252
mov dword [esp + 0x24], eax
cmp esi, 0xffffffff
jne 0x452263
mov ecx, dword [edi + 0x180]
mov dword [esp + 0x14], ecx
jmp 0x452267
mov dword [esp + 0x14], esi
cmp ebx, 0xffffffff
jne 0x452278
mov edx, dword [edi + 0x1a0]
mov dword [esp + 0x18], edx
jmp 0x45227c
mov dword [esp + 0x18], ebx
cmp eax, 0xffffffff
jne 0x45228d
mov ecx, dword [edi + 0x1e4]
mov dword [esp + 0x20], ecx
jmp 0x452291
mov dword [esp + 0x20], eax
cmp esi, 0xffffffff
jne 0x45229c
mov esi, dword [edi + 0x180]
cmp ebx, 0xffffffff
jne 0x4522a7
mov ebx, dword [edi + 0x1a0]
cmp eax, 0xffffffff
jne 0x4522b2
mov eax, dword [edi + 0x1e4]
shr eax, 0x10
movzx ecx, al
imul ecx, ecx, 0x32
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, eax
mov edx, esi
shr edx, 0x10
movzx eax, dl
lea esi, [eax + eax*4]
add esi, esi
add esi, esi
add esi, esi
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
add cl, al
shr ebx, 0x10
movzx eax, bl
lea esi, [eax + eax*4]
add esi, esi
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
add cl, al
movzx ebx, cl
mov ecx, dword [esp + 0x20]
shr ecx, 8
movzx ecx, cl
imul ecx, ecx, 0x32
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x18]
mov ecx, eax
shr edx, 8
movzx eax, dl
lea esi, [eax + eax*4]
add esi, esi
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
add cl, al
shr edx, 8
movzx eax, dl
lea esi, [eax + eax*4]
add esi, esi
add esi, esi
add esi, esi
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
add cl, al
movzx eax, byte [esp + 0x1c]
movzx ecx, cl
shl ebx, 8
or ebx, ecx
lea ecx, [eax + eax*4]
add ecx, ecx
shl ebx, 8
add ecx, ecx
movzx esi, byte [esp + 0x24]
add ecx, ecx
imul esi, esi, 0x32
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, eax
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
add cl, al
movzx eax, byte [esp + 0x10]
lea esi, [eax + eax*4]
add esi, esi
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
add cl, al
movzx ecx, cl
or ebx, ecx
mov dword [edi + 0x1fc], ebx
mov eax, dword [edi + 0x2a4]
cmp eax, 0xffffffff
jne 0x4523fb
mov eax, dword [edi + 0x1a8]
mov edx, eax
shr edx, 8
mov ecx, eax
shr ecx, 0x10
movzx esi, al
movzx ebx, dl
cmp esi, ebx
movzx edx, cl
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x18], edx
mov ecx, esi
jg 0x452426
mov ecx, ebx
cmp ecx, edx
jle 0x452436
cmp esi, ebx
jle 0x452432
mov ecx, esi
jmp 0x452438
mov ecx, ebx
jmp 0x452438
mov ecx, edx
test ecx, ecx
jne 0x452448
mov dword [edi + 0x22c], 0x232323
jmp 0x4524a6
mov eax, 0xff
sub eax, ecx
cmp eax, 0x23
mov esi, 0x23
jg 0x45245b
mov esi, eax
add esi, ecx
mov eax, esi
imul eax, edx
cdq
idiv ecx
movzx eax, al
shl eax, 8
mov dword [esp + 0x1c], eax
mov eax, esi
imul eax, ebx
cdq
idiv ecx
movzx edx, al
mov eax, dword [esp + 0x1c]
or eax, edx
shl eax, 8
mov dword [esp + 0x1c], eax
mov eax, esi
mov esi, dword [esp + 0x24]
imul eax, esi
cdq
idiv ecx
mov ecx, dword [esp + 0x1c]
movzx eax, al
or ecx, eax
mov eax, dword [esp + 0x10]
mov dword [edi + 0x22c], ecx
mov edx, dword [edi + 0x2a8]
cmp edx, 0xffffffff
jne 0x4524b7
mov edx, dword [edi + 0x1ac]
movzx ecx, dl
mov ebx, edx
shr edx, 0x10
shr ebx, 8
movzx edx, dl
movzx ebx, bl
cmp ecx, ebx
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], ecx
mov edx, ecx
jg 0x4524d8
mov edx, ebx
cmp edx, dword [esp + 0x14]
jle 0x4524e6
cmp ecx, ebx
jg 0x4524ea
mov ecx, ebx
jmp 0x4524ea
mov ecx, dword [esp + 0x14]
test eax, eax
jne 0x4524fa
mov dword [edi + 0x230], 0x7f7f7f
jmp 0x45255e
test ecx, ecx
jne 0x452506
mov dword [edi + 0x230], ecx
jmp 0x45255e
xor edx, edx
lea eax, [ecx - 0x2b]
test eax, eax
setl dl
dec edx
and edx, eax
mov esi, edx
mov eax, esi
imul eax, dword [esp + 0x14]
cdq
idiv ecx
movzx eax, al
shl eax, 8
mov dword [esp + 0x10], eax
mov eax, esi
imul eax, ebx
cdq
idiv ecx
mov edx, dword [esp + 0x10]
movzx eax, al
or edx, eax
mov eax, esi
imul eax, dword [esp + 0x1c]
shl edx, 8
mov dword [esp + 0x10], edx
cdq
idiv ecx
mov esi, dword [esp + 0x24]
movzx ecx, al
mov eax, dword [esp + 0x10]
or eax, ecx
mov dword [edi + 0x230], eax
mov ecx, dword [edi + 0x1e8]
fnstcw word [esp + 0x14]
mov edx, ecx
shr edx, 0x10
movzx eax, dl
mov dword [esp + 0x10], eax
movzx eax, word [esp + 0x14]
fild dword [esp + 0x10]
fld qword [str.Invalid_cHRM_red_point]
or eax, 0xc00
mov dword [esp + 0x10], eax
fmul st(1), st(0)
mov eax, ecx
fxch st(1)
shr eax, 8
fldcw word [esp + 0x10]
movzx eax, al
movzx ecx, cl
fistp dword [esp + 0x10]
mov dl, byte [esp + 0x10]
mov dword [esp + 0x10], eax
movzx edx, dl
fldcw word [esp + 0x14]
shl edx, 8
fild dword [esp + 0x10]
fnstcw word [esp + 0x14]
fmul st(1)
movzx eax, word [esp + 0x14]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp dword [esp + 0x10]
movzx eax, byte [esp + 0x10]
or edx, eax
mov dword [esp + 0x10], ecx
fldcw word [esp + 0x14]
shl edx, 8
fild dword [esp + 0x10]
fnstcw word [esp + 0x14]
fmulp st(1)
movzx eax, word [esp + 0x14]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp dword [esp + 0x10]
movzx eax, byte [esp + 0x10]
movzx ecx, al
fldcw word [esp + 0x14]
or edx, ecx
lea eax, [esi + 0xf]
cmp eax, 0xff
mov dword [edi + 0x1f4], edx
jl 0x45262a
mov eax, 0xff
mov ecx, dword [esp + 0x20]
add ecx, 0xf
cmp ecx, 0xff
mov edx, ecx
jl 0x452640
mov edx, 0xff
mov ecx, dword [esp + 0x18]
add ecx, 0xf
cmp ecx, 0xff
jl 0x452654
mov ecx, 0xff
movzx ecx, cl
shl ecx, 8
movzx edx, dl
or ecx, edx
movzx eax, al
shl ecx, 8
or ecx, eax
mov dword [edi + 0x1c4], ecx
mov eax, dword [edi + 0x2e0]
cmp eax, 0xffffffff
jne 0x45267e
mov eax, dword [edi + 0x1e4]
mov dword [edi + 0x240], eax
mov eax, dword [edi + 0x308]
cmp eax, 0xffffffff
jne 0x452695
mov eax, dword [edi + 0x20c]
mov ecx, dword [edi + 0x20c]
mov dword [edi + 0x254], eax
mov dword [edi + 0x25c], ecx
call fcn.004516b0
mov ebx, 0x577d58
xor esi, esi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], 1
push 0x57ccc0
push esi
lea ecx, [esp + 0x30]
mov dword [esp + 0x128], esi
call fcn.0041fee0
lea edx, [esp + 0x28]
push edx
call fcn.0041fd70
test eax, eax
je 0x4526fe
add edi, 0x250
push edi
push 0xed9
push esi
push esi
lea ecx, [esp + 0x38]
call fcn.0041fc10
lea eax, [esp + 0x28]
mov dword [esp + 0x120], 0xffffffff
push eax
mov dword [esp + 0x2c], ebx
call fcn.0041f9d0
mov ecx, dword [esp + 0x118]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret