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

Disassembly:
sub esp, 0x20
mov edx, dword [esp + 0x28]
mov eax, ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
push esi
mov esi, dword [eax + 4]
mov dword [esp + 0x10], esi
test ecx, ecx
jg 0x41c82a
jl 0x41c80b
cmp edx, 2
jae 0x41c82a
push str.Called_with_maxSize___2
push str.readLine
push eax
call fcn.0041ae10
add esp, 0xc
or eax, 0xffffffff
or edx, eax
pop esi
add esp, 0x20
ret 0xc
add edx, 0xffffffff
push ebp
mov ebp, dword [esi + 0x7c]
adc ecx, 0xffffffff
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ecx
test ebp, ebp
jne 0x41c85b
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
call eax
mov edx, dword [esp + 0x10]
movzx ebp, al
neg ebp
sbb ebp, ebp
add ebp, 2
mov dword [esi + 0x7c], ebp
push ebx
push edi
cmp ebp, 1
jne 0x41c994
cmp byte [esi + 0x78], 0
je 0x41c994
mov ecx, dword [esi + 0x40]
xorps xmm0, xmm0
movlpd qword [esp + 0x28], xmm0
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
mov byte [esp + 0x38], 1
test ecx, ecx
je 0x41c89d
mov esi, dword [ecx + 0xc]
mov eax, dword [ecx + 8]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x1c]
jmp 0x41c8af
movlpd qword [esp + 0x28], xmm0
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x28]
mov edx, dword [esi + 0x74]
cmp edx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
jg 0x41ca10
jl 0x41c8cb
cmp dword [esi + 0x70], eax
jae 0x41ca10
test ecx, ecx
je 0x41c901
mov eax, dword [esi + 0x74]
push eax
push dword [esi + 0x70]
push dword [esp + 0x1c]
push edx
push 0xa
call fcn.004495d0
mov ecx, dword [esi + 0x40]
mov edi, dword [esi + 0x70]
mov ebx, dword [esi + 0x74]
test edx, edx
jl 0x41c907
jg 0x41c8f5
test eax, eax
jb 0x41c907
sub eax, edi
sbb edx, ebx
add eax, 1
adc edx, 0
jmp 0x41c90f
mov edi, dword [esi + 0x70]
mov ebx, dword [esi + 0x74]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
test ecx, ecx
je 0x41c926
push ebx
push edi
push edx
push eax
push dword [esp + 0x44]
call fcn.00449700
mov edi, eax
mov ebx, edx
jmp 0x41c937
xorps xmm0, xmm0
movlpd qword [esp + 0x28], xmm0
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov ecx, edi
mov eax, ebx
add ecx, dword [esi + 0x70]
mov dword [esi + 0x70], ecx
adc eax, dword [esi + 0x74]
mov dword [esi + 0x74], eax
mov edx, dword [esi + 0x40]
test edx, edx
je 0x41c956
mov esi, dword [edx + 8]
mov edx, dword [edx + 0xc]
jmp 0x41c967
xorps xmm0, xmm0
movlpd qword [esp + 0x28], xmm0
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x1c]
cmp ecx, dword [esp + 0x20]
jne 0x41ca10
cmp eax, edx
jne 0x41ca10
mov ecx, dword [esp + 0x10]
push 0
push 0
push dword [esp + 0x3c]
mov eax, dword [ecx]
call dword [eax + 0x60]
jmp 0x41ca10
mov ecx, dword [esi + 0x40]
xorps xmm0, xmm0
movlpd qword [esp + 0x28], xmm0
xor dl, dl
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
mov byte [esp + 0x38], dl
movlpd qword [esp + 0x28], xmm0
test ecx, ecx
je 0x41ca64
mov eax, dword [ecx + 8]
or eax, dword [ecx + 0xc]
je 0x41ca64
push dword [esp + 0x24]
push dword [esp + 0x24]
push dword [esp + 0x3c]
call fcn.00449a30
mov ecx, dword [esi + 0x40]
mov edi, eax
mov ebx, edx
test ecx, ecx
je 0x41c9ec
mov eax, dword [ecx + 8]
or eax, dword [ecx + 0xc]
jne 0x41c9fd
mov ecx, dword [esp + 0x10]
push 0
push 0
push dword [esp + 0x3c]
mov eax, dword [ecx]
call dword [eax + 0x60]
cmp ebp, 1
je 0x41ca10
add dword [esi + 0x48], edi
mov dl, byte [esp + 0x38]
adc dword [esi + 0x4c], ebx
mov byte [esp + 0x38], dl
mov eax, edi
mov dword [esp + 0x24], ebx
mov ecx, eax
mov dword [esp + 0x1c], eax
or eax, ebx
mov dword [esp + 0x20], ecx
je 0x41ca80
mov eax, dword [esp + 0x34]
cmp byte [ecx + eax - 1], 0xa
jne 0x41ca80
test byte [esi + 0x30], 0x10
je 0x41ca52
test ebx, ebx
jl 0x41ca52
jg 0x41ca40
cmp edi, 1
jbe 0x41ca52
cmp byte [ecx + eax - 2], 0xd
jne 0x41ca52
add edi, 0xffffffff
adc ebx, 0xffffffff
mov byte [edi + eax - 1], 0xa
mov byte [edi + eax], 0
mov edx, ebx
mov eax, edi
pop edi
pop ebx
pop ebp
pop esi
add esp, 0x20
ret 0xc
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], 0
mov byte [esp + 0x38], dl
mov eax, dword [esi + 0x48]
mov edx, dword [esi + 0x4c]
cmp eax, dword [esi + 0x50]
jne 0x41ca90
cmp edx, dword [esi + 0x54]
je 0x41cab7
cmp ebp, 1
je 0x41cab7
mov ecx, dword [esp + 0x10]
push edx
push dword [esi + 0x48]
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
test al, al
jne 0x41cab7
pop edi
pop ebx
or eax, 0xffffffff
pop ebp
or edx, eax
pop esi
add esp, 0x20
ret 0xc
mov ecx, dword [esp + 0x20]
add ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x18]
sub edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
sbb eax, dword [esp + 0x24]
cmp byte [esp + 0x38], 0
mov byte [esi + 0x79], 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], eax
je 0x41caf0
push eax
push edx
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.0041cba0
jmp 0x41cb04
mov ecx, dword [esp + 0x10]
push dword [esp + 0x14]
push edx
mov eax, dword [ecx]
push dword [esp + 0x28]
mov eax, dword [eax + 0x64]
call eax
test edx, edx
jg 0x41cb2e
jl 0x41cb0e
test eax, eax
jae 0x41cb2e
mov eax, dword [esp + 0x20]
mov byte [eax], 0
mov eax, edi
or eax, ebx
jne 0x41cb85
or edi, 0xffffffff
or ebx, edi
mov eax, edi
pop edi
mov edx, ebx
pop ebx
pop ebp
pop esi
add esp, 0x20
ret 0xc
add edi, eax
adc ebx, edx
cmp byte [esi + 0x79], 0
jne 0x41cb51
cmp ebp, 1
je 0x41cb51
add dword [esi + 0x48], eax
mov dword [esi + 0x50], 0xffffffff
adc dword [esi + 0x4c], edx
mov dword [esi + 0x54], 0xffffffff
mov eax, dword [esp + 0x34]
mov byte [edi + eax], 0
test byte [esi + 0x30], 0x10
je 0x41cb85
test ebx, ebx
jl 0x41cb85
jg 0x41cb6a
cmp edi, 1
jbe 0x41cb85
cmp byte [edi + eax - 1], 0xa
jne 0x41cb85
cmp byte [edi + eax - 2], 0xd
jne 0x41cb85
mov word [edi + eax - 2], 0xa
add edi, 0xffffffff
adc ebx, 0xffffffff
mov eax, edi
mov edx, ebx
pop edi
pop ebx
pop ebp
pop esi
add esp, 0x20
ret 0xc