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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5ecf28
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x65bf90]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], eax
mov bl, byte [edi + 0x60]
mov esi, dword [ebp + 0xc]
test bl, bl
jne 0x46d12b
cmp dword [edi + 0x2c], esi
je 0x46d147
push 0
lea ecx, [edi + 4]
call fcn.0046c0a0
mov dword [ebp - 0x18], eax
test eax, eax
jns 0x46d183
mov eax, 0x80070057
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edx, dword [edi + 0x24]
cmp edx, eax
jbe 0x46d101
mov ecx, dword [edi + 0x20]
cmp dword [ecx], esi
je 0x46d143
inc eax
add ecx, 4
cmp eax, edx
jb 0x46d135
jmp 0x46d101
test eax, eax
js 0x46d101
mov ecx, dword [ebp + 8]
mov esi, dword [ecx + eax*4]
test esi, esi
je 0x46d168
mov edx, dword [esi]
mov eax, dword [edx + 4]
push esi
call eax
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x46d168
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp + 0x10]
mov dword [eax], esi
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [edi + 0x14]
lea eax, [ecx + eax*8]
test bl, bl
je 0x46d192
mov eax, dword [eax + 4]
jmp 0x46d194
mov eax, dword [eax]
mov esi, eax
test bl, bl
jne 0x46d1a0
mov edx, dword [edi + 0x3c]
mov esi, dword [edx + eax*4]
mov eax, dword [edi + 0x6c]
mov ebx, dword [eax + esi*4]
mov eax, dword [ebx]
test eax, eax
jne 0x46d1af
mov eax, dword [ebx + 4]
mov ecx, dword [eax]
lea edx, [ebp - 0x10]
push edx
push 0x62af40
push eax
mov eax, dword [ecx]
call eax
mov edx, dword [ebp - 0x10]
test edx, edx
je 0x46d42e
mov cl, byte [edi + 0x60]
test cl, cl
je 0x46d1d6
mov eax, dword [ebx + 8]
jmp 0x46d1db
mov eax, 1
test cl, cl
je 0x46d1e5
mov ecx, dword [edi + 0x30]
mov esi, dword [ecx + esi*4]
mov byte [ebp + 0xf], 0
cmp eax, 1
jne 0x46d40f
mov dword [ebp - 0x14], 0
mov byte [ebp - 4], al
mov eax, dword [ebx]
mov edx, dword [eax]
mov edx, dword [edx]
lea ecx, [ebp - 0x14]
push ecx
push 0x62b060
push eax
call edx
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x46d30c
mov dword [ebp + 0xc], 0
mov ecx, dword [ebp + 8]
lea eax, [ebp + 0xc]
push eax
push esi
push ecx
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.0046d0c0
mov esi, eax
test esi, esi
je 0x46d28c
mov byte [ebp - 4], 1
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x46d24d
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x46d260
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x46d276
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 0xc]
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0xc]
call eax
mov esi, eax
test esi, esi
je 0x46d2f3
mov byte [ebp - 4], 1
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x46d2b4
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x46d2c7
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x46d276
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov bl, 1
mov byte [ebp - 4], bl
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x46d307
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x14]
jmp 0x46d30f
mov bl, byte [ebp + 0xf]
mov byte [ebp - 4], 0
test eax, eax
je 0x46d31f
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov edx, dword [ebp - 0x10]
test bl, bl
je 0x46d417
mov eax, dword [edi + 0x7c]
cmp eax, dword [ebp - 0x18]
ja 0x46d36a
lea esi, [edi + 0x78]
push 0xc
call fcn.004ba280
xor ebx, ebx
add esp, 4
cmp eax, ebx
je 0x46d34f
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov ebx, eax
call fcn.0041bab0
mov ecx, dword [esi + 4]
mov edx, dword [esi]
mov eax, dword [ebp - 0x18]
mov dword [edx + ecx*4], ebx
inc dword [esi + 4]
cmp dword [edi + 0x7c], eax
jbe 0x46d335
mov edx, dword [ebp - 0x10]
mov ecx, dword [edi + 0x78]
mov eax, dword [ebp - 0x18]
mov ebx, dword [ecx + eax*4]
lea edi, [ebx + 8]
xor esi, esi
cmp dword [edi], esi
jne 0x46d41b
cmp dword [ebx + 4], esi
jne 0x46d41b
push 0x18
call fcn.004ba280
add esp, 4
cmp eax, esi
je 0x46d3b3
mov dword [eax + 4], vtable.IOutStreamFinish.0
mov dword [eax + 8], esi
mov dword [eax], vtable.COutStreamCalcSize.0
mov dword [eax + 4], vtable.COutStreamCalcSize.1.0
mov dword [eax + 0xc], esi
mov esi, eax
call fcn.004227d0
mov dword [ebx + 4], esi
mov eax, dword [ebp - 0x10]
mov edi, eax
test eax, eax
je 0x46d3cc
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov eax, dword [esi + 0xc]
test eax, eax
je 0x46d3db
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esi + 0xc], edi
xor eax, eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov esi, dword [ebx + 4]
lea edi, [ebp - 0x10]
call fcn.004227d0
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x10]
mov dword [eax], ecx
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
test eax, eax
je 0x46d32a
test edx, edx
jmp 0x46d41d
cmp edx, esi
mov dword [ebp - 4], 0xffffffff
je 0x46d42e
mov eax, dword [edx]
mov ecx, dword [eax + 8]
push edx
call ecx
mov eax, 0x80004001
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc