Function at 0x41c1f0
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 0x41c23a
jl 0x41c21b
cmp edx, 2
jae 0x41c23a
push str.Called_with_maxSize___2
push str.readLine
push eax
call fcn.0041a820
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 0x41c26b
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 0x41c3a4
cmp byte [esi + 0x78], 0
je 0x41c3a4
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 0x41c2ad
mov esi, dword [ecx + 0xc]
mov eax, dword [ecx + 8]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x1c]
jmp 0x41c2bf
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 0x41c420
jl 0x41c2db
cmp dword [esi + 0x70], eax
jae 0x41c420
test ecx, ecx
je 0x41c311
mov eax, dword [esi + 0x74]
push eax
push dword [esi + 0x70]
push dword [esp + 0x1c]
push edx
push 0xa
call fcn.004493a0
mov ecx, dword [esi + 0x40]
mov edi, dword [esi + 0x70]
mov ebx, dword [esi + 0x74]
test edx, edx
jl 0x41c317
jg 0x41c305
test eax, eax
jb 0x41c317
sub eax, edi
sbb edx, ebx
add eax, 1
adc edx, 0
jmp 0x41c31f
mov edi, dword [esi + 0x70]
mov ebx, dword [esi + 0x74]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
test ecx, ecx
je 0x41c336
push ebx
push edi
push edx
push eax
push dword [esp + 0x44]
call fcn.004494d0
mov edi, eax
mov ebx, edx
jmp 0x41c347
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 0x41c366
mov esi, dword [edx + 8]
mov edx, dword [edx + 0xc]
jmp 0x41c377
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 0x41c420
cmp eax, edx
jne 0x41c420
mov ecx, dword [esp + 0x10]
push 0
push 0
push dword [esp + 0x3c]
mov eax, dword [ecx]
call dword [eax + 0x60]
jmp 0x41c420
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 0x41c474
mov eax, dword [ecx + 8]
or eax, dword [ecx + 0xc]
je 0x41c474
push dword [esp + 0x24]
push dword [esp + 0x24]
push dword [esp + 0x3c]
call fcn.00449800
mov ecx, dword [esi + 0x40]
mov edi, eax
mov ebx, edx
test ecx, ecx
je 0x41c3fc
mov eax, dword [ecx + 8]
or eax, dword [ecx + 0xc]
jne 0x41c40d
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 0x41c420
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 0x41c490
mov eax, dword [esp + 0x34]
cmp byte [ecx + eax - 1], 0xa
jne 0x41c490
test byte [esi + 0x30], 0x10
je 0x41c462
test ebx, ebx
jl 0x41c462
jg 0x41c450
cmp edi, 1
jbe 0x41c462
cmp byte [ecx + eax - 2], 0xd
jne 0x41c462
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 0x41c4a0
cmp edx, dword [esi + 0x54]
je 0x41c4c7
cmp ebp, 1
je 0x41c4c7
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 0x41c4c7
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 0x41c500
push eax
push edx
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.0041c5b0
jmp 0x41c514
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 0x41c53e
jl 0x41c51e
test eax, eax
jae 0x41c53e
mov eax, dword [esp + 0x20]
mov byte [eax], 0
mov eax, edi
or eax, ebx
jne 0x41c595
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 0x41c561
cmp ebp, 1
je 0x41c561
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 0x41c595
test ebx, ebx
jl 0x41c595
jg 0x41c57a
cmp edi, 1
jbe 0x41c595
cmp byte [edi + eax - 1], 0xa
jne 0x41c595
cmp byte [edi + eax - 2], 0xd
jne 0x41c595
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