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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x8c
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0xc]
push edi
push esi
push ebx
call fcn.00500c30
add esp, 8
test eax, eax
je 0x4edbda
push str.jpc_dec_decodecblks_failed_n
call fcn.004f7130
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x20]
xor edi, edi
mov ecx, dword [ebx + 0x38]
add esi, 0x1c
mov dword [esp + 0x3c], edi
mov dword [esp + 0x34], esi
test ecx, ecx
je 0x4ee081
lea ebx, [eax + 0x14]
xor edx, edx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x40], edx
mov eax, dword [esi]
mov esi, dword [ebx + 4]
mov dword [esp + 0x14], esi
mov ecx, dword [eax + 0x18]
add ecx, edx
xor edx, edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], edx
cmp dword [ebx], edx
jbe 0x4edfef
mov eax, dword [esi + 4]
test eax, eax
je 0x4edfd7
xor edi, edi
mov dword [esp + 0x1c], edi
cmp dword [esi], edi
jbe 0x4edfd7
lea esi, [eax + 4]
mov dword [esp + 0x10], esi
mov eax, dword [esi]
mov dword [esp + 0x64], eax
test eax, eax
je 0x4edfb5
mov eax, dword [esi + 0x14]
movzx ebx, byte [ecx + 0x1a1]
mov dword [esp + 0x90], eax
mov eax, dword [esi + 0x1c]
sub ebx, eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x54], ebx
test eax, eax
jns 0x4edc8b
push str.warning:_forcing_negative_ROI_shift_to_zero__bitstream_is_probably_corrupt__n
call fcn.004f71f0
mov ecx, dword [esp + 0x34]
add esp, 4
xor eax, eax
mov dword [esp + 0x68], eax
jmp 0x4edc8d
jne 0x4edc95
test ebx, ebx
je 0x4ede9a
mov ecx, eax
mov edx, 1
xor al, al
shl edx, cl
mov byte [esp + 0xf], al
xorps xmm0, xmm0
mov eax, dword [esp + 0x64]
mov dword [esp + 0x94], edx
movlpd qword [esp + 0x58], xmm0
mov ebx, dword [eax + 0x2c]
mov ecx, dword [eax + 0x30]
mov esi, dword [eax + 0x34]
mov edx, dword [eax + 0x28]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x48], esi
mov dword [esp + 0x2c], edx
mov dword [esp + 0x44], ebx
test ebx, ebx
jl 0x4ede92
jg 0x4edce9
test edx, edx
je 0x4ede92
mov edi, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x50], edi
mov dword [esp + 0x4c], edx
nop dword [eax]
mov eax, dword [eax + 0x38]
xorps xmm0, xmm0
movlpd qword [esp + 0x58], xmm0
mov ebx, dword [eax + edx*4]
mov dword [esp + 0x78], ebx
test esi, esi
jl 0x4ede66
jg 0x4edd25
test ecx, ecx
je 0x4ede66
mov ecx, dword [esp + 0x90]
mov esi, 1
mov eax, dword [esp + 0x94]
rol esi, cl
mov ecx, dword [esp + 0x5c]
cdq
mov edi, eax
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], edi
mov dword [esp + 0x88], edx
mov dword [esp + 0x70], ecx
jmp 0x4edd65
mov esi, dword [esp + 0x7c]
mov eax, dword [ebx]
mov ecx, eax
mov ebx, dword [ebx + 4]
mov dword [esp + 0x6c], eax
mov eax, ebx
cdq
xor eax, edx
mov dword [esp + 0x58], ebx
xor ecx, edx
sub ecx, edx
mov dword [esp + 0x20], ecx
sbb eax, edx
mov edx, eax
mov dword [esp + 0x24], edx
cmp edx, dword [esp + 0x88]
jl 0x4eddab
jg 0x4edd98
cmp ecx, edi
jb 0x4eddab
mov eax, ecx
mov ecx, dword [esp + 0x68]
call fcn.0068e460
mov edi, eax
mov esi, edx
test ebx, ebx
jmp 0x4eddfc
movq xmm1, qword [esp + 0x20]
lea ebx, [esi - 1]
movd xmm0, dword [esp + 0x54]
mov ecx, ebx
psllq xmm1, xmm0
not ecx
xor eax, eax
movq qword [esp + 0x20], xmm1
mov edi, dword [esp + 0x20]
and ecx, edi
mov esi, dword [esp + 0x24]
and eax, esi
or ecx, eax
je 0x4eddf7
cmp byte [esp + 0xf], 0
jne 0x4eddf3
push str.warning:_possibly_corrupt_code_stream_n
call fcn.004f71f0
add esp, 4
mov byte [esp + 0xf], 1
and edi, ebx
xor esi, esi
cmp dword [esp + 0x58], 0
jg 0x4ede0e
jl 0x4ede07
cmp dword [esp + 0x6c], 0
jae 0x4ede0e
neg edi
adc esi, 0
neg esi
mov ebx, dword [esp + 0x78]
mov dword [ebx], edi
mov edi, dword [esp + 0x74]
mov dword [ebx + 4], esi
mov esi, dword [esp + 0x70]
add esi, 1
mov dword [esp + 0x70], esi
adc edi, 0
add ebx, 8
cmp edi, dword [esp + 0x48]
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0x80]
mov dword [esp + 0x78], ebx
jl 0x4edd61
mov ecx, dword [esp + 0x84]
jg 0x4ede5a
cmp esi, ecx
mov esi, dword [esp + 0x7c]
jb 0x4edd65
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x50]
mov eax, dword [esp + 0x64]
add edx, 1
mov dword [esp + 0x4c], edx
adc edi, 0
mov dword [esp + 0x50], edi
cmp edi, dword [esp + 0x44]
jl 0x4edd00
jg 0x4ede8e
cmp edx, dword [esp + 0x2c]
jb 0x4edd00
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
cmp byte [ecx + 8], 0
jne 0x4edfb5
push 0x12
push dword [esi]
call fcn.004e1e50
mov ecx, dword [esi + 0xc]
add esp, 8
mov eax, dword [esi + 0x10]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x2c], eax
cmp ecx, 0x40000
jne 0x4edece
test eax, eax
je 0x4edfb1
mov eax, dword [esi]
xorps xmm0, xmm0
mov dword [esp + 0x48], eax
movlpd qword [esp + 0x88], xmm0
mov edx, dword [eax + 0x2c]
mov ecx, dword [eax + 0x28]
mov edi, dword [eax + 0x30]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edx
test edx, edx
jl 0x4edfad
jg 0x4edf03
test ecx, ecx
je 0x4edfad
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], ecx
nop dword [eax]
mov eax, dword [eax + 0x38]
xor esi, esi
mov ebx, dword [eax + ecx*4]
test edi, edi
je 0x4edf85
nop dword [eax]
mov ecx, dword [ebx + esi*8]
mov eax, ecx
mov edx, dword [ebx + esi*8 + 4]
or eax, edx
je 0x4edf78
test edx, edx
jl 0x4edf52
jg 0x4edf47
test ecx, ecx
je 0x4edf52
add ecx, 0x20000
adc edx, 0
jmp 0x4edf5b
add ecx, 0xfffe0000
adc edx, 0xffffffff
push dword [esp + 0x2c]
push dword [esp + 0x48]
push edx
push ecx
call fcn.0068e490
shrd eax, edx, 0x12
sar edx, 0x12
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], edx
inc esi
cmp esi, edi
jb 0x4edf30
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
add ecx, 1
mov dword [esp + 0x50], ecx
adc edx, 0
mov dword [esp + 0x4c], edx
cmp edx, dword [esp + 0x58]
jl 0x4edf20
jg 0x4edfa9
cmp ecx, dword [esp + 0x54]
jb 0x4edf20
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
inc edi
add esi, 0x28
mov dword [esp + 0x1c], edi
mov dword [esp + 0x10], esi
cmp edi, dword [eax]
jb 0x4edc42
mov edx, dword [esp + 0x38]
mov esi, eax
mov ebx, dword [esp + 0x18]
inc edx
add esi, 0x3c
mov dword [esp + 0x38], edx
mov dword [esp + 0x14], esi
cmp edx, dword [ebx]
jb 0x4edc22
mov edi, dword [esp + 0x3c]
mov eax, dword [ebp + 8]
inc edi
mov edx, dword [esp + 0x40]
add ebx, 0x20
mov esi, dword [esp + 0x34]
add edx, 0x1e8
mov dword [esp + 0x3c], edi
mov ecx, dword [eax + 0x38]
mov dword [esp + 0x40], edx
mov dword [esp + 0x18], ebx
cmp edi, ecx
jb 0x4edc02
mov eax, dword [ebp + 0xc]
mov ebx, esi
xor edi, edi
mov dword [esp + 0x2c], ebx
mov esi, dword [eax + 0x20]
test ecx, ecx
je 0x4ee04f
mov ebx, dword [ebp + 8]
add esi, 0x1c
push dword [esi - 0xc]
push dword [esi]
call fcn.004fb740
mov ecx, dword [ebx + 0x38]
lea esi, [esi + 0x20]
inc edi
add esp, 8
cmp edi, ecx
jb 0x4ee033
mov ebx, dword [esp + 0x2c]
mov edi, ebx
mov eax, dword [ebx]
movzx eax, byte [eax + 0x10]
sub eax, 1
je 0x4ee0b2
sub eax, 1
jne 0x4ee10d
cmp ecx, 3
jae 0x4ee08b
push str.RCT_requires_at_least_three_components_n
call fcn.004f7130
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, esi
mov edi, ebx
mov dword [esp + 0x34], edi
jmp 0x4ee051
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.004e3800
add esp, 4
test al, al
je 0x4ee0df
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x20]
push dword [eax + 0x50]
push dword [eax + 0x30]
push dword [eax + 0x10]
call fcn.004fdfa0
jmp 0x4ee10a
cmp ecx, 3
jae 0x4ee0ce
push str.ICT_requires_at_least_three_components_n
call fcn.004f7130
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.004e3800
add esp, 4
test al, al
jne 0x4ee0f6
push str.RCT_requires_all_components_have_the_same_domain_n
call fcn.004f7130
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x20]
push dword [eax + 0x50]
push dword [eax + 0x30]
push dword [eax + 0x10]
call fcn.004fddd0
add esp, 0xc
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x10], 0
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x4ee269
lea edx, [ecx + 0x10]
xor esi, esi
mov dword [esp + 0x14], edx
xor ecx, ecx
mov dword [esp + 0x38], esi
nop dword [eax + eax]
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
cmp byte [eax + esi + 8], 0
jne 0x4ee243
mov eax, dword [edx]
xorps xmm0, xmm0
mov dword [esp + 0x3c], eax
movlpd qword [esp + 0x20], xmm0
mov ecx, dword [eax + 0x2c]
mov edi, dword [eax + 0x28]
mov edx, dword [eax + 0x34]
mov ebx, dword [eax + 0x30]
mov dword [esp + 0x58], edi
mov dword [esp + 0x54], ecx
mov dword [esp + 0x44], edx
test ecx, ecx
jl 0x4ee23b
jg 0x4ee189
test edi, edi
je 0x4ee23b
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x40], esi
mov dword [esp + 0x18], ecx
nop dword [eax]
mov eax, dword [eax + 0x38]
xorps xmm0, xmm0
movlpd qword [esp + 0x20], xmm0
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x2c], ecx
test edx, edx
jl 0x4ee20d
jg 0x4ee1bd
test ebx, ebx
je 0x4ee20d
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
mov ecx, dword [ecx + esi*8]
test ecx, ecx
jns 0x4ee1d4
lea eax, [ecx + 0x20000]
jmp 0x4ee1e2
mov eax, 0x20000
sub eax, ecx
and eax, 0xfffc0000
neg eax
mov ecx, dword [esp + 0x2c]
sar eax, 0x12
cdq
mov dword [ecx + esi*8], eax
mov dword [ecx + esi*8 + 4], edx
add esi, 1
mov edx, dword [esp + 0x44]
adc edi, 0
cmp edi, edx
jl 0x4ee1c5
jg 0x4ee205
cmp esi, ebx
jb 0x4ee1c5
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x58]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
add ecx, 1
mov dword [esp + 0x18], ecx
adc esi, 0
mov dword [esp + 0x40], esi
cmp esi, dword [esp + 0x54]
jl 0x4ee1a0
jg 0x4ee237
cmp ecx, edi
jb 0x4ee1a0
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x34]
mov eax, dword [ebp + 8]
inc ecx
add dword [esp + 0x14], 0x20
add esi, 0x1e8
mov edx, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov eax, dword [eax + 0x38]
mov dword [esp + 0x38], esi
cmp ecx, eax
jb 0x4ee140
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x10], 0
mov ecx, dword [ecx + 0x20]
mov edx, dword [ebx + 0x58]
test eax, eax
je 0x4ee3a0
lea eax, [ecx + 0x10]
xor ecx, ecx
lea ebx, [edx + 0x10]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], ebx
jmp 0x4ee2a4
mov eax, dword [esp + 0x14]
cmp byte [ebx + 4], 0
jne 0x4ee37e
mov eax, dword [eax]
xor esi, esi
mov dword [esp + 0x2c], eax
xorps xmm0, xmm0
movlpd qword [esp + 0x20], xmm0
mov ecx, dword [eax + 0x34]
mov edi, dword [eax + 0x28]
mov edx, dword [eax + 0x30]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x38], eax
mov eax, dword [ebx]
xor ebx, ebx
dec eax
mov dword [esp + 0x18], ecx
bts esi, eax
mov dword [esp + 0x44], edi
cmp eax, 0x20
cmovae ebx, esi
xor esi, ebx
cmp eax, 0x40
cmovae ebx, esi
cmp dword [esp + 0x38], 0
jl 0x4ee376
jg 0x4ee2fe
test edi, edi
je 0x4ee376
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edi
nop
mov eax, dword [esp + 0x2c]
xorps xmm0, xmm0
movlpd qword [esp + 0x20], xmm0
mov eax, dword [eax + 0x38]
mov edi, dword [eax + edi*4]
test ecx, ecx
jl 0x4ee352
jg 0x4ee32d
test edx, edx
je 0x4ee352
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
add dword [edi + eax*8], esi
adc dword [edi + eax*8 + 4], ebx
add eax, 1
adc ecx, 0
cmp ecx, dword [esp + 0x18]
jl 0x4ee335
jg 0x4ee34e
cmp eax, edx
jb 0x4ee335
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
add edi, 1
mov dword [esp + 0x40], edi
adc eax, 0
mov dword [esp + 0x3c], eax
cmp eax, dword [esp + 0x38]
jl 0x4ee310
jg 0x4ee376
cmp edi, dword [esp + 0x44]
jb 0x4ee310
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov eax, dword [ebp + 8]
inc ecx
add dword [esp + 0x14], 0x20
add ebx, 0x20
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [eax + 0x38]
cmp ecx, eax
jb 0x4ee2a0
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
xor esi, esi
mov ebx, dword [ebx + 0x58]
mov dword [esp + 0x18], esi
mov ecx, dword [ecx + 0x20]
test eax, eax
je 0x4ee461
add ecx, 0x10
add ebx, 0x10
mov dword [esp + 0x14], ecx
mov al, byte [ebx + 4]
mov edx, dword [ebx]
mov byte [esp + 0xf], al
movzx eax, al
add eax, 0x3e
cmp edx, eax
jae 0x4ee444
cmp byte [esp + 0xf], 0
je 0x4ee402
lea esi, [edx - 1]
or eax, 0xffffffff
or edx, eax
mov ecx, esi
call fcn.0068e440
xor ecx, ecx
xor edi, edi
bts ecx, esi
cmp esi, 0x20
cmovae edi, ecx
xor ecx, edi
cmp esi, 0x40
mov esi, dword [esp + 0x18]
jmp 0x4ee425
xor ecx, ecx
xor edi, edi
bts ecx, edx
xorps xmm0, xmm0
cmp edx, 0x20
movlpd qword [esp + 0x20], xmm0
mov eax, dword [esp + 0x20]
cmovae edi, ecx
xor ecx, edi
cmp edx, 0x40
mov edx, dword [esp + 0x24]
cmovae edi, ecx
sub ecx, 1
sbb edi, 0
push edi
push ecx
push edx
push eax
mov eax, dword [esp + 0x24]
push dword [eax]
call fcn.004e1f60
mov ecx, dword [esp + 0x28]
add esp, 0x14
mov eax, dword [ebp + 8]
inc esi
add ecx, 0x20
mov dword [esp + 0x18], esi
add ebx, 0x20
mov dword [esp + 0x14], ecx
mov eax, dword [eax + 0x38]
cmp esi, eax
jb 0x4ee3c1
mov ecx, dword [ebp + 0xc]
xor ebx, ebx
mov edi, dword [ecx + 0x20]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x58]
mov dword [esp + 0x18], edx
test eax, eax
je 0x4ee4d1
mov eax, dword [edi + 0x10]
mov ecx, dword [edx + 4]
mov esi, dword [edx]
xor edx, edx
push eax
push dword [eax + 0x28]
push dword [eax + 0x30]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
dec eax
add eax, ecx
div ecx
mov ecx, dword [edi + 4]
xor edx, edx
sub ecx, eax
mov eax, dword [ebp + 8]
push ecx
mov ecx, dword [edi]
mov eax, dword [eax + 4]
dec eax
add eax, esi
div esi
mov esi, dword [ebp + 8]
sub ecx, eax
push ecx
push ebx
push dword [esi]
call fcn.004e4a90
add esp, 0x1c
test eax, eax
jne 0x4ee4da
mov edx, dword [esp + 0x18]
inc ebx
add edx, 0x20
add edi, 0x20
mov dword [esp + 0x18], edx
cmp ebx, dword [esi + 0x38]
jb 0x4ee477
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.write_component_failed_n
call fcn.004f7130
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret