Function at 0x40f890
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x1e80
call fcn.00445c00
mov esi, esp
mov dword [esi + 0x1e68], ebp
mov dword [esi + 8], ecx
mov eax, dword [ebp + 0x1c]
mov dword [esi + 0xc], eax
mov dword [esi + 0x1e6c], esp
mov dword [esi + 0x1e78], 0xffffffff
mov dword [esi + 0x1e74], 0x4143d0
mov ecx, dword fs:[0]
mov dword [esi + 0x1e70], ecx
lea ecx, [esi + 0x1e70]
mov dword fs:[0], ecx
mov dword [esi + 0x30], edx
mov edi, dword [edx + 0x28]
test edi, edi
je 0x40f918
mov eax, dword [esi + 0x30]
mov ebx, dword [eax + 0x24]
shl edi, 3
xor ecx, ecx
xor edx, edx
nop
mov eax, dword [ebx + ecx]
xor eax, dword [esi + 0xc]
or eax, dword [ebx + ecx + 4]
je 0x40fa14
dec edx
add ecx, 8
cmp edi, ecx
jne 0x40f900
mov dword [esi + 0x1e78], 0xffffffff
push dword [esi + 0xc]
mov ebx, dword [esi + 0x30]
push ebx
call fcn.0041fec0
add esp, 8
test eax, eax
je 0x40fa7e
mov eax, dword [ebx + 0x1c]
cmp edx, eax
jae 0x40fc00
mov eax, dword [ebx + 0x18]
shl edx, 4
mov eax, dword [eax + edx + 8]
mov ecx, dword [ebx + 0x10]
cmp ecx, eax
jbe 0x40fc0c
cmp eax, 0x20
jae 0x40fc18
mov ecx, dword [ebp + 0x10]
mov edi, dword [ecx + eax*4]
cmp edi, 0xffffffff
je 0x40faec
mov ecx, dword [ebx + 0x34]
cmp ecx, eax
jbe 0x40fc3b
mov dword [esi + 0xc], edi
lea edi, [eax + eax*2]
shl edi, 4
add edi, dword [ebx + 0xc]
mov ecx, dword [edi]
xor ecx, 1
or ecx, dword [edi + 4]
jne 0x40fb0c
mov ecx, dword [ebx + 0x30]
mov edx, ebx
mov ebx, dword [ecx + eax*8]
lea ecx, [esi + 0x40]
push dword [esi + 0xc]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040f890
add esp, 0x18
movzx eax, byte [esi + 0x40]
cmp al, 0x12
jne 0x40fb2c
push 0x3fffff
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push edi
push ebx
push dword [esi + 0x48]
push dword [esi + 0x44]
lea eax, [esi + 0x40]
push eax
call fcn.0041c940
add esp, 0x20
mov edi, dword [esi + 0x40]
cmp edi, 6
jne 0x40fb5f
movsd xmm0, qword [esi + 0x54]
movsd qword [esi + 0x20], xmm0
movups xmm1, xmmword [esi + 0x44]
movaps xmmword [esi + 0x10], xmm1
mov eax, dword [esi + 8]
movsd qword [eax + 0x10], xmm0
movups xmmword [eax], xmm1
jmp 0x40fbec
neg edx
mov eax, dword [ebp + 0xc]
cmp edx, eax
jae 0x40fc25
mov eax, dword [ebp + 8]
mov edx, dword [eax + ecx*4 + 0x18]
mov dword [esi + 0xc], edx
mov ebx, dword [eax + ecx*4 + 0x14]
movups xmm0, xmmword [eax + ecx*4]
movaps xmmword [esi + 0x30], xmm0
mov edi, dword [eax + ecx*4 + 0x10]
movzx eax, byte [0x4679f9]
push 8
push 0x20
call fcn.0041f3c0
add esp, 8
test eax, eax
je 0x40fc47
movaps xmm0, xmmword [esi + 0x30]
movups xmmword [eax], xmm0
mov dword [eax + 0x10], edi
mov dword [eax + 0x14], ebx
mov ecx, dword [esi + 0xc]
mov dword [eax + 0x18], ecx
mov ecx, dword [esi + 8]
mov dword [ecx + 4], eax
mov dword [ecx + 8], 0x457130
mov byte [ecx], 0x12
jmp 0x40fbec
lea eax, [ebp + 0x1c]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], fcn.00445850
mov dword [esi + 0xf50], 0x457180
mov dword [esi + 0xf54], 1
mov dword [esi + 0xf60], 0
lea eax, [esi + 0x10]
mov dword [esi + 0xf58], eax
mov dword [esi + 0xf5c], 1
lea eax, [esi + 0xf50]
lea ecx, [esi + 0x40]
push eax
push ecx
call fcn.004415b0
add esp, 8
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
mov edi, dword [esi + 8]
mov byte [edi], 6
mov dword [edi + 4], ecx
mov dword [edi + 0xc], eax
mov dword [edi + 8], edx
jmp 0x40fbec
mov eax, dword [esi + 8]
mov byte [eax], 6
mov dword [eax + 4], 0x80000000
mov dword [eax + 8], 0x457223
mov dword [eax + 0xc], 0x1c
jmp 0x40fbec
mov eax, dword [esi + 8]
mov byte [eax], 0x10
mov dword [eax + 4], 0x80000000
mov dword [eax + 8], str.Multi_input_stream_coders_are_not_yet_supportedin_stream_index_out_of_range
mov dword [eax + 0xc], 0x2f
jmp 0x40fbec
movzx ecx, byte [esi + 0x43]
mov edx, dword [esi + 8]
mov byte [edx + 3], cl
movzx ecx, word [esi + 0x41]
mov word [edx + 1], cx
movsd xmm0, qword [esi + 0x4c]
movsd qword [edx + 0xc], xmm0
mov ecx, dword [esi + 0x54]
mov dword [edx + 0x14], ecx
movsd xmm0, qword [esi + 0x44]
mov byte [edx], al
movsd qword [edx + 4], xmm0
jmp 0x40fbec
movsd xmm0, qword [esi + 0x54]
movsd qword [esi + 0x20], xmm0
movups xmm0, xmmword [esi + 0x44]
movaps xmmword [esi + 0x10], xmm0
lea eax, [esi + 0x5c]
lea ecx, [esi + 0xf6c]
push 0xef4
push eax
push ecx
call fcn.00446820
add esp, 0xc
mov dword [esi + 0xf50], edi
movaps xmm0, xmmword [esi + 0x10]
movups xmmword [esi + 0xf54], xmm0
movsd xmm0, qword [esi + 0x20]
movsd qword [esi + 0xf64], xmm0
movzx eax, byte [0x4679f9]
push 0x10
push 0xf10
call fcn.0041f3c0
add esp, 8
test eax, eax
je 0x40fc5a
mov ebx, eax
lea eax, [esi + 0xf50]
push 0xf10
push eax
push ebx
call fcn.00446820
add esp, 0xc
mov eax, dword [esi + 8]
mov dword [eax + 4], ebx
mov dword [eax + 8], 0x4571c8
mov byte [eax], 0x12
mov eax, dword [esi + 0x1e70]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x457188
push eax
push edx
call fcn.004552d0
push 0x457198
push ecx
push eax
call fcn.004552d0
push 0x4571a8
push 0x20
push eax
call fcn.004552d0
mov dword [esi + 0x1e78], 0xffffffff
push 0x457120
push eax
push edx
call fcn.004552d0
push 0x4571b8
push ecx
push eax
call fcn.004552d0
mov dword [esi + 0x1e78], 0xffffffff
push 0x20
push 8
call fcn.00455080
mov dword [esi + 0x1e78], 0
push 0xf10
push 0x10
call fcn.00455080
add esp, 8
ud2