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

Disassembly:
sub esp, 0x2c
push ebx
mov ebx, dword [esp + 0x38]
mov eax, ecx
push esi
mov esi, dword [esp + 0x40]
mov edx, esi
mov dword [esp + 8], eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x3c], edx
push edi
mov edi, dword [eax + 4]
mov dword [esp + 0x28], edi
test esi, esi
jg 0x40f2d1
jl 0x40f2b0
cmp ebx, 2
jae 0x40f2d1
push str.Called_with_maxSize___2
push str.readLine
push eax
call fcn.0040d830
add esp, 0xc
or eax, 0xffffffff
or edx, eax
pop edi
pop esi
pop ebx
add esp, 0x2c
ret 0xc
add ebx, 0xffffffff
push ebp
mov ebp, dword [edi + 0x7c]
adc esi, 0xffffffff
mov dword [esp + 0x30], ebx
mov dword [esp + 0x1c], esi
test ebp, ebp
jne 0x40f302
mov ecx, dword [edi + 4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
call eax
mov edx, dword [esp + 0x44]
movzx ebp, al
neg ebp
sbb ebp, ebp
add ebp, 2
mov dword [edi + 0x7c], ebp
cmp ebp, 1
jne 0x40f311
cmp byte [edi + 0x78], 0
je 0x40f311
mov al, 1
jmp 0x40f313
xor al, al
mov ecx, dword [edi + 0x40]
xorps xmm0, xmm0
mov byte [esp + 0x44], al
movlpd qword [esp + 0x34], xmm0
test al, al
je 0x40f44f
test ecx, ecx
je 0x40f33f
mov eax, dword [ecx + 8]
mov dword [esp + 0x24], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x20], eax
jmp 0x40f355
movlpd qword [esp + 0x24], xmm0
mov eax, dword [esp + 0x28]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
mov edx, dword [edi + 0x74]
mov eax, dword [edi + 0x70]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
cmp edx, dword [esp + 0x20]
jg 0x40f4e9
jl 0x40f379
cmp eax, dword [esp + 0x24]
jae 0x40f4e9
test ecx, ecx
je 0x40f39b
push edx
push eax
push esi
push ebx
push 0xa
call fcn.00445580
mov ecx, dword [edi + 0x70]
mov dword [esp + 0x14], ecx
mov ecx, dword [edi + 0x74]
mov dword [esp + 0x18], ecx
mov ecx, dword [edi + 0x40]
jmp 0x40f3a0
or eax, 0xffffffff
or edx, eax
test edx, edx
jl 0x40f3be
jg 0x40f3aa
test eax, eax
jb 0x40f3be
mov esi, dword [esp + 0x14]
sub eax, esi
mov ebx, dword [esp + 0x18]
sbb edx, ebx
add eax, 1
adc edx, 0
jmp 0x40f3ca
mov eax, ebx
mov edx, esi
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
test ecx, ecx
je 0x40f3e7
push ebx
push esi
push edx
push eax
push dword [esp + 0x50]
call fcn.004456e0
mov ecx, dword [edi + 0x74]
mov esi, eax
mov eax, dword [edi + 0x70]
mov ebx, edx
jmp 0x40f400
mov eax, dword [esp + 0x14]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x18]
movlpd qword [esp + 0x34], xmm0
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
add eax, esi
mov dword [edi + 0x70], eax
adc ecx, ebx
mov dword [edi + 0x74], ecx
mov edx, dword [edi + 0x40]
test edx, edx
je 0x40f419
mov edi, dword [edx + 8]
mov edx, dword [edx + 0xc]
jmp 0x40f42a
xorps xmm0, xmm0
movlpd qword [esp + 0x34], xmm0
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x34]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x2c]
cmp eax, dword [esp + 0x24]
jne 0x40f4a0
cmp ecx, edx
jne 0x40f4a0
mov ecx, dword [esp + 0x10]
push 0
push 0
push dword [esp + 0x48]
mov eax, dword [ecx]
call dword [eax + 0x60]
jmp 0x40f4a0
test ecx, ecx
je 0x40f4e9
mov eax, dword [ecx + 8]
or eax, dword [ecx + 0xc]
je 0x40f4e9
push edx
push dword [esp + 0x28]
push dword [esp + 0x48]
call fcn.00445be0
mov ecx, dword [edi + 0x40]
mov esi, eax
mov ebx, edx
test ecx, ecx
je 0x40f484
mov eax, dword [ecx + 8]
or eax, dword [ecx + 0xc]
jne 0x40f495
mov ecx, dword [esp + 0x10]
push 0
push 0
push dword [esp + 0x48]
mov eax, dword [ecx]
call dword [eax + 0x60]
cmp ebp, 1
je 0x40f4a0
add dword [edi + 0x48], esi
adc dword [edi + 0x4c], ebx
mov eax, esi
or eax, ebx
je 0x40f4f1
mov ecx, dword [esp + 0x40]
cmp byte [esi + ecx - 1], 0xa
lea eax, [esi + ecx]
jne 0x40f4f1
test byte [edi + 0x30], 0x10
je 0x40f4d8
test ebx, ebx
jl 0x40f4d8
jg 0x40f4c5
cmp esi, 1
jbe 0x40f4d8
cmp byte [eax - 2], 0xd
jne 0x40f4d8
add esi, 0xffffffff
lea eax, [esi + ecx]
adc ebx, 0xffffffff
mov byte [eax - 1], 0xa
pop ebp
pop edi
mov byte [eax], 0
mov edx, ebx
mov eax, esi
pop esi
pop ebx
add esp, 0x2c
ret 0xc
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov eax, dword [edi + 0x48]
mov edx, dword [edi + 0x4c]
cmp eax, dword [edi + 0x50]
jne 0x40f501
cmp edx, dword [edi + 0x54]
je 0x40f528
cmp ebp, 1
je 0x40f528
mov ecx, dword [esp + 0x10]
push edx
push dword [edi + 0x48]
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
test al, al
jne 0x40f528
pop ebp
pop edi
or eax, 0xffffffff
pop esi
or edx, eax
pop ebx
add esp, 0x2c
ret 0xc
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x30]
add ecx, esi
mov eax, dword [esp + 0x1c]
sub edx, esi
mov byte [edi + 0x79], 0
sbb eax, ebx
mov dword [esp + 0x2c], ecx
cmp byte [esp + 0x44], 0
mov dword [esp + 0x1c], eax
je 0x40f55b
push eax
push edx
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.0040f600
jmp 0x40f56f
mov ecx, dword [esp + 0x10]
push dword [esp + 0x1c]
push edx
mov eax, dword [ecx]
push dword [esp + 0x34]
mov eax, dword [eax + 0x64]
call eax
test edx, edx
jg 0x40f599
jl 0x40f579
test eax, eax
jae 0x40f599
mov eax, dword [esp + 0x2c]
mov byte [eax], 0
mov eax, esi
or eax, ebx
jne 0x40f5f0
pop ebp
or esi, 0xffffffff
or ebx, esi
mov eax, esi
pop edi
pop esi
mov edx, ebx
pop ebx
add esp, 0x2c
ret 0xc
add esi, eax
adc ebx, edx
cmp byte [edi + 0x79], 0
jne 0x40f5bc
cmp ebp, 1
je 0x40f5bc
add dword [edi + 0x48], eax
mov dword [edi + 0x50], 0xffffffff
adc dword [edi + 0x4c], edx
mov dword [edi + 0x54], 0xffffffff
mov eax, dword [esp + 0x40]
mov byte [esi + eax], 0
test byte [edi + 0x30], 0x10
je 0x40f5f0
test ebx, ebx
jl 0x40f5f0
jg 0x40f5d5
cmp esi, 1
jbe 0x40f5f0
cmp byte [esi + eax - 1], 0xa
jne 0x40f5f0
cmp byte [esi + eax - 2], 0xd
jne 0x40f5f0
mov word [esi + eax - 2], 0xa
add esi, 0xffffffff
adc ebx, 0xffffffff
pop ebp
pop edi
mov eax, esi
mov edx, ebx
pop esi
pop ebx
add esp, 0x2c
ret 0xc