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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x2c8
mov esi, dword [edx]
mov bl, byte [ecx + 0x3c]
lea eax, [ecx + 0x40]
lea edx, [ecx + 0x10]
mov dword [esp], ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x74], edx
mov dword [esp + 0x2c], esi
lea esi, [esp + 0x1a8]
test bl, bl
jne 0x4d6f26
mov edx, dword [esp + 0x30]
mov ecx, esi
push dword [esp + 0x2c]
call fcn.004cb5f0
pop eax
mov eax, dword [esp + 0x208]
cmp eax, 0x80000000
je 0x4d69fd
cmp eax, 0x80000001
je 0x4d705d
push 0x88
push esi
lea eax, [esp + 0x240]
push eax
call fcn.00616830
add esp, 0xc
mov eax, dword [esp]
cmp byte [eax + 0x3c], 0
jne 0x4d706e
mov ebx, dword [esp + 0x230]
call fcn.005585dc
mov ecx, eax
mov edi, eax
call fcn.004b6944
mov ecx, edi
mov esi, eax
call fcn.005564c3
mov word [esp + 0x2a8], si
call fcn.005bf9e0
mov esi, edx
lea ecx, [esp + 0xa8]
mov edx, eax
push 0x19db1de
push 0xd53e8000
push esi
call fcn.005bfa50
add esp, 0xc
mov eax, dword [esp + 0xa8]
or eax, dword [esp + 0xac]
je 0x4d6a0b
mov ecx, str.Current_time_is_before_the_Unix_epoch.can_not_send_messages_after_stream_is_shutdown2
push 0x26
pop edx
call fcn.00489b0b
mov dword [esp + 0x128], 2
mov dword [esp + 0x12c], eax
mov byte [esp + 0x134], 0
jmp 0x4d6d8d
mov eax, dword [esp]
mov bl, 1
mov byte [eax + 0x3c], 1
jmp 0x4d6920
mov eax, dword [esp]
mov dword [esp + 0xc], ebx
cmp dword [eax + 0x38], 0
jne 0x4d709b
mov eax, dword [esp + 0x260]
mov ecx, 0x200
mov edx, 0x1000
cmp ax, 0x201
cmovb eax, ecx
cmp ax, 0x1000
cmovae eax, edx
cmp byte [esp + 0x264], 2
lea edx, [esp + 0x240]
movzx esi, ax
cmove esi, ecx
lea ecx, [esp + 0xa8]
call fcn.0049e588
mov ebx, dword [esp + 0xa8]
mov eax, dword [esp + 0xac]
cmp ebx, 0x80000000
jne 0x4d6a98
xor ecx, ecx
mov dword [esp + 0x128], 2
mov dword [esp + 0x12c], eax
mov byte [esp + 0x134], 0
call fcn.004157c6
jmp 0x4d6d89
mov dword [esp + 8], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
movzx eax, word [esp + 0x2a8]
mov word [esp + 0x36], ax
mov eax, dword [esp + 0x74]
movsd xmm1, qword [eax + 0x10]
movsd xmm0, qword [eax + 0x18]
movsd xmm2, qword [eax]
movsd qword [esp + 0x58], xmm1
movsd xmm1, qword [eax + 8]
movsd qword [esp + 0x60], xmm0
movsd qword [esp + 0x48], xmm2
movsd qword [esp + 0x50], xmm1
mov eax, dword [0x7f50bc]
cmp eax, 4
jb 0x4d6c78
mov edi, dword [0x7f1f04]
mov eax, dword [edi + 0x14]
mov ecx, dword [edi + 0x18]
mov dword [esp + 0x7c], 4
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
call fcn.00513e14
mov ecx, eax
lea eax, [esp + 0x7c]
push eax
mov dword [esp + 0x28], ecx
push ecx
mov dword [esp + 0x30], edx
call dword [edx + 0xc]
add esp, 8
test al, al
je 0x4d6c78
mov eax, dword [esp + 0x84]
movsd xmm0, qword [esp + 0x7c]
mov ecx, dword [0x7f1f04]
mov dword [esp + 0x20], edi
mov dword [esp + 0x40], eax
movsd qword [esp + 0x38], xmm0
lea eax, [ecx + 0x1c]
mov edx, dword [ecx + 0x20]
mov dword [esp + 0x1c], eax
test edx, edx
je 0x4d6b8d
mov eax, dword [ecx + 0x1c]
mov edi, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
mov dword [esp + 0xac], edx
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], ecx
and dword [esp + 0xb8], 0
jmp 0x4d6b8f
xor eax, eax
lea edi, [esp + 0xa8]
mov dword [esp + 0xa8], eax
lea ecx, [esp + 0x88]
mov edx, edi
push 0x738c80
call fcn.0052f9f9
pop eax
mov edx, dword [esp + 8]
mov ecx, edi
push dword [esp + 4]
call fcn.004bc14f
pop eax
lea ecx, [esp + 0x128]
mov edx, edi
push 0x738c90
call fcn.004d0f23
pop eax
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x10]
mov dword [esp + 0xa8], 0x738aa8
mov edx, dword [esp + 0x24]
mov dword [esp + 0x68], eax
xor eax, eax
inc eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0xac], eax
and dword [esp + 0xb8], 0
mov dword [esp + 0x70], ecx
lea ecx, [esp + 0x128]
mov dword [esp + 0xa0], ecx
lea ecx, [esp + 0xa0]
mov dword [esp + 0xa4], 0x4b6646
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xb4], eax
lea eax, [esp + 0x88]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x68]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], 0x737ff8
push eax
lea eax, [esp + 0x3c]
push eax
mov eax, dword [esp + 0x30]
push dword [eax + 0x10]
call fcn.005de194
add esp, 0xc
lea ecx, [esp + 0x128]
call fcn.004be0c8
mov edi, dword [esp]
mov ecx, dword [edi + 0x30]
mov edx, dword [edi + 0x34]
call fcn.004f9bc1
mov dword [esp + 0x1c], eax
mov eax, dword [edi]
mov dword [esp + 0x78], edx
mov ecx, 0x124
mov dword [esp + 0x28], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x20], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x24], eax
push 4
pop edx
call fcn.005086b2
mov dword [eax], ebx
mov edi, eax
mov eax, dword [esp + 8]
xor ebx, ebx
mov dword [edi + 4], eax
mov eax, dword [esp + 4]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x1c]
movsd xmm0, qword [esp + 0x48]
movsd xmm1, qword [esp + 0x50]
movsd qword [edi + 0xc], xmm0
movsd qword [edi + 0x14], xmm1
movsd xmm0, qword [esp + 0x58]
movsd qword [edi + 0x1c], xmm0
movsd xmm0, qword [esp + 0x60]
movsd qword [edi + 0x24], xmm0
movsd xmm0, qword [esp + 0x48]
movsd xmm1, qword [esp + 0x50]
movsd qword [edi + 0x34], xmm1
movsd qword [edi + 0x2c], xmm0
movsd xmm0, qword [esp + 0x58]
movsd qword [edi + 0x3c], xmm0
movsd xmm0, qword [esp + 0x60]
movsd qword [edi + 0x44], xmm0
mov dword [edi + 0x4c], eax
mov eax, dword [esp + 0x78]
mov dword [edi + 0x50], eax
movzx eax, word [esp + 0x36]
and dword [edi + 0x54], 0
mov dword [edi + 0x5c], esi
mov word [edi + 0x60], ax
mov byte [edi + 0x62], bl
push 0x78
pop ecx
push 8
pop edx
call fcn.005086b2
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov dword [eax + 4], ecx
mov dword [eax], esi
mov dword [eax + 8], edx
mov dword [eax + 0x10], edi
mov dword [eax + 0x14], 0x738ca0
mov byte [eax + 0x70], bl
and dword [esp + 0x128], 0
mov dword [esp + 0x12c], eax
mov dword [esp + 0x130], 0x73c994
mov byte [esp + 0x134], bl
mov ebx, dword [esp + 0xc]
lea ecx, [esp + 0x240]
call fcn.004be0c8
lea eax, [esp + 0x128]
lea ecx, [esp + 0x48]
mov edx, ebx
push eax
call fcn.004bc49c
pop eax
cmp dword [esp + 0x48], 4
lea esi, [esp + 0x1a8]
je 0x4d6f16
mov eax, dword [0x7f50bc]
cmp eax, 2
jb 0x4d6f16
mov esi, dword [0x7f1ec8]
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x38], 2
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ecx
call fcn.00513e14
mov edi, eax
mov ebx, edx
lea eax, [esp + 0x38]
push eax
push edi
call dword [edx + 0xc]
add esp, 8
test al, al
je 0x4d6f0f
mov eax, dword [esp + 0x40]
movsd xmm0, qword [esp + 0x38]
mov dword [esp + 0xc], ebx
mov ebx, dword [0x7f1ec8]
mov dword [esp + 0x70], eax
movsd qword [esp + 0x68], xmm0
mov ecx, dword [ebx + 0x20]
test ecx, ecx
je 0x4d6e63
mov edx, dword [ebx + 0x24]
mov eax, dword [ebx + 0x1c]
mov dword [esp + 4], edx
mov edx, dword [ebx + 0x28]
mov dword [esp + 0xac], ecx
mov ecx, dword [esp + 4]
mov dword [esp + 8], edx
mov edx, dword [esp + 8]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], edx
and dword [esp + 0xb8], 0
jmp 0x4d6e65
xor eax, eax
add ebx, 0x1c
mov dword [esp + 0xa8], eax
lea ecx, [esp + 0x128]
lea edx, [esp + 0xa8]
push 0x738960
call fcn.0052f9f9
pop eax
xor ecx, ecx
lea eax, [esp + 0x128]
mov dword [esp + 0xa8], 0x7389a8
mov edx, edi
inc ecx
mov dword [esp + 0x88], eax
lea eax, [esp + 0xa8]
mov dword [esp + 0xac], ecx
and dword [esp + 0xb8], 0
mov dword [esp + 0xb0], 0x7b0e68
and dword [esp + 0xb4], 0
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x88]
mov dword [esp + 0x90], 0x737ff8
mov dword [esp + 0x10], eax
lea eax, [esp + 0x10]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ebx
mov ecx, esi
push eax
lea eax, [esp + 0x6c]
push eax
mov eax, dword [esp + 0x14]
push dword [eax + 0x10]
call fcn.005de194
add esp, 0xc
lea esi, [esp + 0x1a8]
lea ecx, [esp + 0x48]
call fcn.004cb6c5
xor ebx, ebx
jmp 0x4d6920
mov eax, dword [0x7f50bc]
cmp eax, 4
jb 0x4d705d
mov esi, dword [0x7f1eb0]
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x10], 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
call fcn.00513e14
mov ecx, eax
mov edi, edx
lea eax, [esp + 0x10]
push eax
mov dword [esp + 4], ecx
push ecx
call dword [edx + 0xc]
add esp, 8
test al, al
je 0x4d705d
mov eax, dword [esp + 0x18]
movsd xmm0, qword [esp + 0x10]
mov ecx, dword [0x7f1eb0]
mov dword [esp + 0x30], edi
mov dword [esp + 0x90], eax
movsd qword [esp + 0x88], xmm0
lea eax, [ecx + 0x1c]
mov edx, dword [ecx + 0x20]
mov dword [esp + 0x2c], eax
test edx, edx
je 0x4d6fcb
mov eax, dword [ecx + 0x1c]
mov edi, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
mov dword [esp + 0x1ac], edx
mov dword [esp + 0x1b0], edi
mov dword [esp + 0x1b4], ecx
and dword [esp + 0x1b8], 0
jmp 0x4d6fcd
xor eax, eax
lea edi, [esp + 0x1a8]
lea ecx, [esp + 0xa8]
mov dword [edi], eax
mov edx, edi
push 0x7388e8
call fcn.0052f9f9
pop eax
lea eax, [esp + 0xa8]
xor ecx, ecx
mov dword [edi], str.io_stream_is_done__shutting_down
mov edx, dword [esp]
mov dword [esp + 0x128], eax
lea eax, [esp + 0x128]
inc ecx
mov dword [esp + 0x12c], edi
mov dword [esp + fcn.00414ed0], 0x737ff8
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x2c]
mov dword [edi + 4], ecx
and dword [edi + 0x10], 0
mov dword [edi + 8], 0x7b0e68
and dword [edi + 0xc], 0
mov dword [esp + 0x4c], ecx
mov ecx, esi
mov dword [esp + 0x50], eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x8c]
push eax
mov eax, dword [esp + 0x38]
push dword [eax + 0x10]
call fcn.005de194
add esp, 0xc
xor eax, eax
test bl, bl
sete al
xor edx, edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [esp + 0xa8]
mov edx, 0x738cb0
mov dword [ecx], 0x738b60
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x7b0e68
and dword [ecx + 0xc], 0
call fcn.0062d360
lea ecx, [esp + 0x240]
call fcn.004d0d72
mov ecx, dword [esp + 4]
movzx eax, byte [ecx + 0x70]
test eax, eax
je 0x4d70c0
cmp eax, 3
jne 0x4d70cd
add ecx, 0x18
jmp fcn.004d733e
mov eax, dword [ecx + 0x10]
mov edx, dword [ecx + 0x14]
mov ecx, eax
call fcn.00415fa8
ret