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

Disassembly:
sub esp, 0x8c
push ebx
push ebp
push esi
xor eax, eax
push edi
push eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xa4]
mov ebx, ecx
mov dword [esp + 0x40], ebx
push eax
mov ecx, dword [ebx]
push ecx
call fcn.00487810
mov edx, dword [ebx]
add esp, 0xc
push edx
push 4
lea eax, [esp + 0x20]
push 1
push eax
mov byte [esp + 0x28], 0xff
mov byte [esp + 0x29], 0xff
mov byte [esp + 0x2a], 0xff
mov byte [esp + 0x2b], 0xff
call fcn.00487020
movzx edx, byte [esp + 0x29]
movzx ecx, byte [esp + 0x2a]
mov esi, 0x4949
add esp, 0x10
cmp word [ebx + 4], si
jne 0x428926
movzx eax, byte [esp + 0x1b]
shl eax, 8
or eax, ecx
movzx ecx, byte [esp + 0x18]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
jmp 0x42893d
xor eax, eax
mov ah, byte [esp + 0x18]
or eax, edx
movzx edx, byte [esp + 0x1b]
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
cmp eax, 0x504b5453
jne 0x428db2
mov eax, dword [ebx]
push eax
push 4
lea ecx, [esp + 0x34]
push 1
push ecx
mov byte [esp + 0x3c], 0xff
mov byte [esp + 0x3d], 0xff
mov byte [esp + 0x3e], 0xff
mov byte [esp + 0x3f], 0xff
call fcn.00487020
mov edx, dword [ebx]
push edx
push 0x28
lea eax, [esp + 0x58]
push 1
push eax
call fcn.00487020
mov ecx, dword [ebx]
push ecx
push 4
lea edx, [esp + 0x3c]
push 1
push edx
mov byte [esp + 0x44], 0xff
mov byte [esp + 0x45], 0xff
mov byte [esp + 0x46], 0xff
mov byte [esp + 0x47], 0xff
call fcn.00487020
movzx ecx, byte [esp + 0x45]
add esp, 0x30
cmp word [ebx + 4], si
jne 0x4289d5
movzx ebp, byte [esp + 0x17]
movzx eax, byte [esp + 0x16]
movzx edx, byte [esp + 0x14]
shl ebp, 8
or ebp, eax
shl ebp, 8
or ebp, ecx
shl ebp, 8
or ebp, edx
mov dword [esp + 0x24], ebp
jmp 0x4289f7
movzx edx, byte [esp + 0x16]
xor eax, eax
mov ah, byte [esp + 0x14]
or eax, ecx
movzx ecx, byte [esp + 0x17]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
mov dword [esp + 0x24], eax
mov ebp, eax
mov edx, dword [ebx]
push edx
call fcn.00487c33
add esp, 4
mov edi, str.JPEG_preview_data
lea esi, [esp + 0x40]
mov ecx, 0x12
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
mov dword [esp + 0x38], eax
jne 0x428a26
mov dword [ebx + 0x344], eax
mov dword [ebx + 0x350], ebp
mov edi, str.icc_camera_profile
lea esi, [esp + 0x40]
mov ecx, 0x13
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x428a46
mov dword [ebx + 0x34c], eax
mov dword [ebx + 0x358], ebp
mov edi, str.ShootObj_back_type
lea esi, [esp + 0x40]
mov ecx, 0x13
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x428a8f
mov edx, dword [ebx]
lea ecx, [esp + 0x1c]
push ecx
push 0x696210
push edx
call fcn.00488acf
mov eax, dword [esp + 0x28]
add esp, 0xc
cmp eax, 0x12
jae 0x428a8f
mov ecx, dword [eax*4 + 0x6961c8]
lea edx, [ebx + 0x255]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x428a85
mov edi, str.icc_camera_to_tone_matrix
lea esi, [esp + 0x40]
mov ecx, 0x1a
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x428bac
mov dword [esp + 0x1c], eax
nop
lea esp, [esp]
mov ecx, dword [ebx]
push ecx
push 4
lea edx, [esp + 0x18]
push 1
push edx
mov byte [esp + 0x20], 0xff
mov byte [esp + 0x21], 0xff
mov byte [esp + 0x22], 0xff
mov byte [esp + 0x23], 0xff
call fcn.00487020
movzx edx, byte [esp + 0x21]
movzx ecx, byte [esp + 0x22]
add esp, 0x10
cmp word [ebx + 4], 0x4949
jne 0x428b05
movzx eax, byte [esp + 0x13]
shl eax, 8
or eax, ecx
movzx ecx, byte [esp + 0x10]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
jmp 0x428b1c
xor eax, eax
mov ah, byte [esp + 0x10]
or eax, edx
movzx edx, byte [esp + 0x13]
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x1c]
fld dword [esp + 0x28]
fstp dword [esp + eax*4 + 0x78]
inc eax
cmp eax, 9
mov dword [esp + 0x1c], eax
jl 0x428ab0
lea eax, [ebx + 0x8598]
mov ebp, 0x65d934
mov dword [esp + 0x20], eax
lea esp, [esp]
mov eax, dword [esp + 0x20]
lea edi, [esp + 0x78]
mov dword [esp + 0x28], 3
mov dword [eax], 0
mov ecx, ebp
mov edx, edi
mov esi, 3
nop
fld dword [ecx]
add ecx, 4
fmul dword [edx]
add edx, 0xc
dec esi
fadd dword [eax]
fstp dword [eax]
jne 0x428b70
mov ecx, dword [esp + 0x28]
add eax, 4
add edi, 4
dec ecx
mov dword [esp + 0x28], ecx
jne 0x428b60
mov ecx, dword [esp + 0x20]
add ebp, 0xc
add ecx, 0x10
cmp ebp, 0x65d958
mov dword [esp + 0x20], ecx
jl 0x428b50
mov ebp, dword [esp + 0x24]
mov edi, str.CaptProf_color_matrix
lea esi, [esp + 0x40]
mov ecx, 0x16
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x428c58
xor eax, eax
mov dword [esp + 0x1c], eax
lea ebx, [ebx]
mov ecx, dword [ebx]
lea eax, [esp + eax*4 + 0x78]
push eax
push 0x69618c
push ecx
call fcn.00488acf
mov eax, dword [esp + 0x28]
add esp, 0xc
inc eax
cmp eax, 9
mov dword [esp + 0x1c], eax
jl 0x428bd0
add ebx, 0x8598
mov ebp, 0x65d934
mov dword [esp + 0x20], ebx
mov eax, dword [esp + 0x20]
lea edi, [esp + 0x78]
mov ebx, 3
nop
mov dword [eax], 0
mov ecx, ebp
mov edx, edi
mov esi, 3
nop
fld dword [ecx]
add ecx, 4
fmul dword [edx]
add edx, 0xc
dec esi
fadd dword [eax]
fstp dword [eax]
jne 0x428c20
add eax, 4
add edi, 4
dec ebx
jne 0x428c10
mov ecx, dword [esp + 0x20]
add ebp, 0xc
add ecx, 0x10
cmp ebp, 0x65d958
mov dword [esp + 0x20], ecx
jl 0x428c02
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x24]
mov edi, str.CaptProf_number_of_planes
lea esi, [esp + 0x40]
mov ecx, 0x1a
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x428c81
mov ecx, dword [ebx]
lea eax, [esp + 0x34]
push eax
push 0x696210
push ecx
call fcn.00488acf
add esp, 0xc
mov edi, str.CaptProf_raw_data_rotation
lea esi, [esp + 0x40]
mov ecx, 0x1b
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x428cac
mov ecx, dword [ebx]
lea eax, [ebx + 0x450]
push eax
push 0x696210
push ecx
call fcn.00488acf
add esp, 0xc
mov edi, str.CaptProf_mosaic_pattern
lea esi, [esp + 0x40]
mov ecx, 0x18
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x428cf0
xor esi, esi
mov ecx, dword [ebx]
lea eax, [esp + 0x1c]
push eax
push 0x696210
push ecx
call fcn.00488acf
mov eax, dword [esp + 0x28]
add esp, 0xc
cmp eax, 1
jne 0x428cea
mov eax, esi
sar eax, 1
xor eax, esi
mov dword [esp + 0x30], eax
inc esi
cmp esi, 4
jl 0x428cc2
mov edi, str.ImgProf_rotation_angle
lea esi, [esp + 0x40]
mov ecx, 0x17
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x428d2b
mov ecx, dword [ebx]
lea eax, [esp + 0x1c]
push eax
push 0x696210
push ecx
call fcn.00488acf
mov eax, dword [ebx + 0x450]
mov edx, dword [esp + 0x28]
add esp, 0xc
sub edx, eax
mov dword [ebx + 0x450], edx
mov edi, str.NeutObj_neutrals
lea esi, [esp + 0x40]
mov ecx, 0x11
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x428d98
fld dword [ebx + 0x8578]
lea ebp, [ebx + 0x8578]
fcomp dword [0x65c2f0]
fnstsw ax
test ah, 0x44
jp 0x428d94
lea esi, [esp + 0x68]
mov edi, 4
mov ecx, dword [ebx]
push esi
push 0x696210
push ecx
call fcn.00488acf
add esp, 0xc
add esi, 4
dec edi
jne 0x428d61
fild dword [esp + 0x68]
xor eax, eax
mov ecx, ebp
fild dword [esp + eax*4 + 0x6c]
inc eax
add ecx, 4
cmp eax, 3
fdivr st(1)
fstp dword [ecx - 4]
jl 0x428d80
fstp st(0)
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x38]
push edx
mov ecx, ebx
call fcn.004288a0
mov eax, dword [esp + 0x38]
push 0
add ebp, eax
push ebp
jmp 0x4288c3
mov esi, dword [esp + 0x34]
test esi, esi
je 0x428dfa
mov ecx, dword [ebx + 0x450]
mov edi, dword [esp + 0x30]
mov eax, 0xb60b60b7
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
add edx, edi
and edx, 3
movzx ecx, byte [edx + 0x696108]
xor edx, edx
cmp esi, 1
sete dl
imul ecx, edx
imul ecx, ecx, 0x1010101
mov dword [ebx + 0x330], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret 4