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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
mov ebx, dword [esp + 0x40]
mov ebp, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
cmp ebp, eax
jae 0x41ee90
lea esi, [ebp + 1]
cmp esi, eax
mov dword [ebx + 0xc], esi
movzx edi, byte [ebp]
jae 0x41ef4d
mov eax, dword [ebx + 0x10]
lea ebp, [esi + 1]
mov dword [ebx + 0xc], ebp
movzx edx, byte [esi]
shl edx, 8
or edi, edx
cmp ebp, eax
jae 0x41f017
lea eax, [ebp + 1]
mov dword [ebx + 0xc], eax
movzx edx, byte [ebp]
shl edx, 0x10
add esp, 0x2c
mov eax, edx
pop ebx
or eax, edi
pop esi
pop edi
pop ebp
ret
mov ecx, dword [ebx + 0x38]
mov ebp, dword [ebx + 4]
mov edx, 0x8000
mov edi, eax
mov esi, dword [ebx + 8]
test ecx, ecx
mov dword [esp + 0x10], ebp
cmovne edx, ecx
sub edi, ebp
mov dword [esp + 0x14], edi
add edx, dword [esp + 0x14]
mov edi, esi
cmp edx, esi
jl 0x41f0e0
mov edx, dword [ebx + 0x18]
test edx, edx
mov dword [esp + 0x14], edx
je 0x41f3a0
mov edx, dword [ebx + 0x30]
test edx, edx
jne 0x41f0f0
cmp dword [esp + 0x10], ebp
mov ecx, dword [ebx + 0x44]
jne 0x41eee8
test ecx, ecx
jne 0x41f3b0
mov esi, dword [ebx + 0x78]
test esi, esi
je 0x41ef04
cmp esi, dword [ebx + 8]
jge 0x41ef04
cmp esi, edi
jg 0x41ef04
cmp ebp, dword [esp + 0x10]
je 0x41f32a
mov edi, esi
mov dword [esp + 8], edi
mov dword [esp + 4], ebp
mov eax, dword [ebx + 0x14]
mov dword [esp], eax
mov eax, dword [esp + 0x14]
call eax
test eax, eax
jne 0x41f1e2
mov esi, dword [ebx + 0x38]
test esi, esi
je 0x41f254
mov eax, ebp
xor esi, esi
xor edi, edi
add dword [ebx + 0x28], esi
mov dword [ebx + 0xc], ebp
adc dword [ebx + 0x2c], edi
mov dword [ebx + 0x10], eax
add dword [ebx + 0x68], esi
adc dword [ebx + 0x6c], edi
cmp ebp, eax
jb 0x41ee45
xor edi, edi
mov esi, dword [ebx + 4]
mov edx, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x38]
mov dword [esp + 0x10], esi
mov esi, dword [ebx + 8]
mov dword [esp + 0x14], edx
jmp 0x41f0f2
cmp esi, dword [ebx + 0xc]
je 0x41f170
mov dword [esp], ebp
call fcn.0056e030
test eax, eax
mov esi, eax
je 0x41f4b3
mov eax, dword [ebx + 4]
mov dword [esp], eax
call sub.msvcrt.dll__aligned_free
mov edx, dword [ebx + 0x34]
mov dword [ebx + 4], esi
mov dword [ebx + 8], ebp
mov dword [ebx + 0x78], ebp
mov dword [ebx + 0xb0], esi
mov dword [ebx + 0xc], esi
test edx, edx
je 0x41f47a
lea eax, [esi + ebp]
mov dword [ebx + 0x34], 1
mov dword [esp + 0x18], ebp
mov dword [ebx + 0x10], eax
mov edx, dword [ebx + 0x18]
mov dword [ebx + 0x40], esi
test edx, edx
je 0x41f425
nop
lea esi, [esi]
mov eax, dword [esp + 0x18]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x14]
mov dword [esp], eax
call edx
test eax, eax
jne 0x41f210
mov eax, dword [ebx + 0x38]
test eax, eax
je 0x41f179
mov eax, esi
xor edx, edx
xor ecx, ecx
add dword [ebx + 0x28], edx
mov dword [ebx + 0xc], esi
adc dword [ebx + 0x2c], ecx
mov dword [ebx + 0x10], eax
add dword [ebx + 0x68], edx
adc dword [ebx + 0x6c], ecx
cmp eax, esi
ja 0x41ee5a
mov ecx, 0x8000
mov edx, dword [ebx + 0x38]
mov ebp, dword [ebx + 4]
mov esi, dword [ebx + 8]
test edx, edx
cmove edx, ecx
mov ecx, eax
mov dword [esp + 0x10], ebp
sub ecx, ebp
add edx, ecx
cmp edx, esi
jl 0x41f0d5
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x41f1c3
xor edx, edx
cmp dword [ebx + 0x30], 0
jne 0x41ee7d
mov edx, dword [ebx + 0x44]
test edx, edx
mov dword [esp + 0x14], edx
je 0x41f068
cmp dword [esp + 0x10], ebp
je 0x41f430
mov edx, dword [ebx + 0x78]
test edx, edx
je 0x41f084
cmp edx, dword [ebx + 8]
jge 0x41f084
cmp edx, esi
jg 0x41f084
cmp ebp, dword [esp + 0x10]
je 0x41f2ae
mov esi, edx
mov dword [esp + 8], esi
mov dword [esp + 4], ebp
mov eax, dword [ebx + 0x14]
mov dword [esp], eax
call ecx
test eax, eax
jne 0x41f234
mov eax, dword [ebx + 0x38]
test eax, eax
je 0x41f1a7
mov eax, ebp
xor edx, edx
xor ecx, ecx
add dword [ebx + 0x28], edx
mov dword [ebx + 0xc], ebp
adc dword [ebx + 0x2c], ecx
mov dword [ebx + 0x10], eax
add dword [ebx + 0x68], edx
adc dword [ebx + 0x6c], ecx
cmp ebp, eax
jb 0x41ee70
xor edx, edx
add esp, 0x2c
mov eax, edx
pop ebx
or eax, edi
pop esi
pop edi
pop ebp
ret
sub esi, ecx
mov ebp, eax
jmp 0x41f03c
sub edi, dword [esp + 0x14]
mov ebp, eax
jmp 0x41eebd
xor edi, edi
test ecx, ecx
mov ebp, 0x8000
mov edx, eax
cmove ecx, ebp
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x18], esi
sub edx, ebp
mov dword [esp + 0x1c], ebp
mov ebp, edx
mov edx, esi
mov esi, dword [esp + 0x10]
add ecx, ebp
cmp ecx, edx
jge 0x41f124
mov ecx, edx
mov esi, eax
sub ecx, ebp
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x14]
test edx, edx
je 0x41f195
mov ecx, dword [ebx + 0x30]
test ecx, ecx
jne 0x41f1d5
mov ecx, dword [ebx + 0x44]
test ecx, ecx
je 0x41f148
cmp dword [esp + 0x10], esi
je 0x41f3f0
mov ebp, dword [ebx + 0x78]
test ebp, ebp
je 0x41efd0
cmp ebp, dword [ebx + 8]
jge 0x41efd0
cmp ebp, dword [esp + 0x18]
jg 0x41efd0
cmp esi, dword [esp + 0x1c]
je 0x41ef66
mov dword [esp + 0x18], ebp
jmp 0x41efd0
mov dword [esp + 8], str.Invalid_return_value_0_for_stream_protocol_n
mov dword [esp + 4], 0x18
mov dword [esp], 0
call fcn.0056b9c0
mov dword [ebx + 0x30], 1
mov esi, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
jmp 0x41f00f
mov dword [esp + 8], str.Invalid_return_value_0_for_stream_protocol_n
mov dword [esp + 4], 0x18
mov dword [esp], 0
call fcn.0056b9c0
mov dword [ebx + 0x30], 1
mov ebp, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
jmp 0x41f0bf
mov eax, dword [ebx + 0x10]
mov ebp, dword [ebx + 0xc]
xor edx, edx
jmp 0x41ee66
cmp eax, 0xdfb9b0bb
je 0x41f270
test eax, eax
jns 0x41f282
mov dword [ebx + 0x48], eax
mov dword [ebx + 0x30], 1
mov ebp, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
jmp 0x41ef43
cmp eax, 0xdfb9b0bb
je 0x41f195
test eax, eax
jns 0x41f290
mov dword [ebx + 0x48], eax
mov dword [ebx + 0x30], 1
mov esi, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
jmp 0x41f00f
cmp eax, 0xdfb9b0bb
je 0x41f1c3
test eax, eax
jns 0x41f2a0
mov dword [ebx + 0x48], eax
mov dword [ebx + 0x30], 1
mov ebp, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
jmp 0x41f0bf
mov dword [esp + 8], str.Invalid_return_value_0_for_stream_protocol_n
mov dword [esp + 4], 0x18
mov dword [esp], 0
call fcn.0056b9c0
mov dword [ebx + 0x30], 1
mov ebp, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
jmp 0x41ef43
mov edi, eax
mov esi, eax
add eax, ebp
sar edi, 0x1f
jmp 0x41ef31
mov ecx, eax
mov edx, eax
add eax, esi
sar ecx, 0x1f
jmp 0x41effd
mov ecx, eax
mov edx, eax
add eax, ebp
sar ecx, 0x1f
jmp 0x41f0ad
cmp ebp, dword [ebx + 0xc]
je 0x41f082
mov dword [esp], edx
mov dword [esp + 0x10], edx
call fcn.0056e030
test eax, eax
mov ebp, eax
je 0x41f490
mov eax, dword [ebx + 4]
mov dword [esp], eax
call sub.msvcrt.dll__aligned_free
mov ecx, dword [ebx + 0x34]
mov edx, dword [esp + 0x10]
mov dword [ebx + 4], ebp
mov dword [ebx + 0xb0], ebp
mov dword [ebx + 0xc], ebp
test ecx, ecx
mov dword [ebx + 8], edx
mov dword [ebx + 0x78], edx
je 0x41f470
lea eax, [ebp + edx]
mov dword [ebx + 0x34], 1
mov esi, edx
mov dword [ebx + 0x10], eax
mov ecx, dword [ebx + 0x18]
mov dword [ebx + 0x40], ebp
test ecx, ecx
jne 0x41f084
mov esi, esi
lea edi, [edi]
mov eax, 0xffffffea
jmp 0x41f23f
cmp ebp, dword [ebx + 0xc]
je 0x41ef02
mov dword [esp], esi
call fcn.0056e030
test eax, eax
mov ebp, eax
je 0x41f4da
mov eax, dword [ebx + 4]
mov dword [esp], eax
call sub.msvcrt.dll__aligned_free
mov edi, dword [ebx + 0x34]
mov dword [ebx + 4], ebp
mov dword [ebx + 8], esi
mov dword [ebx + 0x78], esi
mov dword [ebx + 0xb0], ebp
mov dword [ebx + 0xc], ebp
test edi, edi
je 0x41f486
lea eax, [ebp + esi]
mov dword [ebx + 0x34], 1
mov edi, esi
mov dword [ebx + 0x10], eax
mov eax, dword [ebx + 0x18]
mov dword [ebx + 0x40], ebp
test eax, eax
mov dword [esp + 0x14], eax
jne 0x41ef04
nop
mov eax, 0xffffffea
jmp 0x41f1f5
mov dword [ebx + 0x30], 1
xor edi, edi
jmp 0x41f0f2
mov esi, dword [ebx + 0x40]
cmp eax, esi
jbe 0x41f3da
sub eax, esi
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x3c]
mov dword [esp], eax
call ecx
mov dword [ebx + 0x3c], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
mov dword [ebx + 0x40], eax
mov eax, dword [esp + 0x14]
test eax, eax
je 0x41f390
jmp 0x41eee8
mov ebp, dword [ebx + 0x40]
cmp ebp, eax
jae 0x41f416
sub eax, ebp
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x3c]
mov dword [esp], eax
call ecx
mov dword [ebx + 0x3c], eax
mov eax, dword [ebx + 4]
mov edx, dword [ebx + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
test edx, edx
mov dword [ebx + 0x40], eax
jne 0x41f148
mov eax, 0xffffffea
jmp 0x41f21f
mov edx, dword [ebx + 0x40]
cmp edx, eax
jae 0x41f45a
sub eax, edx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x3c]
mov dword [esp], eax
mov eax, dword [esp + 0x14]
call eax
mov dword [ebx + 0x3c], eax
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 0x18]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
test ecx, ecx
mov dword [ebx + 0x40], eax
je 0x41f320
jmp 0x41f068
mov dword [ebx + 0x10], ebp
mov esi, edx
jmp 0x41f309
mov dword [ebx + 0x10], esi
mov dword [esp + 0x18], ebp
jmp 0x41efba
mov dword [ebx + 0x10], ebp
mov edi, esi
jmp 0x41f37d
mov dword [esp + 8], str.Failed_to_decrease_buffer_size_n
mov dword [esp + 4], 0x18
mov dword [esp], ebx
call fcn.0056b9c0
mov ebp, dword [ebx + 4]
mov esi, dword [ebx + 0x78]
jmp 0x41f309
mov dword [esp + 8], str.Failed_to_decrease_buffer_size_n
mov dword [esp + 4], 0x18
mov dword [esp], ebx
call fcn.0056b9c0
mov eax, dword [ebx + 0x78]
mov esi, dword [ebx + 4]
mov dword [esp + 0x18], eax
jmp 0x41efba
mov dword [esp + 8], str.Failed_to_decrease_buffer_size_n
mov dword [esp + 4], 0x18
mov dword [esp], ebx
call fcn.0056b9c0
mov ebp, dword [ebx + 4]
mov edi, dword [ebx + 0x78]
jmp 0x41f37d